C#控制台程序使用Log4net日志组件详解

C#控制台程序使用Log4net日志组件,供大家参考,具体内容如下

1、Log4net一般都不陌生,但是在配置上不同类型的项目又不相同的地方比如C#控制台程序和C# MVCWeb项目,拿控制台项目为例

项目源码在文章底部

2、首先创建一个控制台程序,引入Log4net.dll --使用NuGet

3、进行一些简单的配置,在App.config文件中配置,如果大家没有App.config文件,可以通过在解决方案中,添加新建项→应用程序配置文件,进行添加。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <configSections>
 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
 </configSections>
 <log4net>
 <root>
 <level value="ALL" />
 <appender-ref ref="SysAppender" />
 </root>
 <logger name="WebLogger">
 <level value="DEBUG" />
 </logger>
 <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net">
 <!--<param name="File" value="App_Data/" />-->
 <param name="File" value="C:\\TestWeb\\Debug\\Error\\" />
 <param name="AppendToFile" value="true" />
 <param name="RollingStyle" value="Date" />
 <param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" />
 <param name="StaticLogFileName" value="false" />
 <layout type="log4net.Layout.PatternLayout,log4net">
 <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
 <param name="Header" value=" ----------------------header--------------------------
" />
 <param name="Footer" value=" ----------------------footer--------------------------
" />
 </layout>
 </appender>
 <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
 <layout type="log4net.Layout.PatternLayout,log4net">
 <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
 </layout>
 </appender>
 </log4net>
 <startup>
 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
 </startup>
</configuration>

一共连个配置项,

(1) 配置初始化

代码如下:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

(2) 日志格式、写入地址等配置

到此 如果在程序里面输出日志,系统不报错,但是没有日志输出,还有一个比较容易遗漏的配置项

4、在AssemblyInfo.cs中添加一句话

代码如下:

[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]

而MVC 项目则是在 Global.asax.cs文件

5、最后在程序里面编写输入代码

static void Main(string[] args)
 {
 //log4net日志
 log4net.ILog logInfo = log4net.LogManager.GetLogger("loginfo");
 logInfo.Info("测试日志写入");
 }

效果如图所示:

点击下载项目源码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#实现将程序运行信息写入日志的方法

    本文实例讲述了C#实现将程序运行信息写入日志的方法.分享给大家供大家参考.具体如下: 1.LogManager类 class LogManager { static object locker = new object(); /// <summary> /// 重要信息写入日志 /// </summary> /// <param name="logs">日志列表,每条日志占一行</param> public static void Wri

  • 将文件夹下所有文件输出到日志文件中 c#递归算法学习示例

    算法文章,总是带给我们无穷的思考和兴趣,一个问题,多种解决方法,看你如何去思考它,对于标题所引出的问题,我觉得,使用递归是比较有效的方法,当然递归还有很多使用场合,如树型分类列表的操作等等. 注意: 使用递归时,初学者要特别注意的就是"出口",必须为递归提供一个出口,否则你的内存就要溢出了,呵呵,memory overflow大家肯定都见过,都是从那时候过来的,呵呵. 代码中的递归: 复制代码 代码如下: static void GetFiles(List<string>

  • C#实现程序单例日志输出功能

    对于一个完整的程序系统,一个日志记录是必不可少的.可以用它来记录程序在运行过程中的运行状态和报错信息.比如,那些不想通过弹框提示的错误,程序执行过程中捕获的异常等. 首先,在你的解决方案中,适当的目录中新建一个类,比如 LogManager: 编写如下代码: /// <summary> /// 日志管理 /// </summary> public class LogManager { private string _logDir; // 日志文件存放目录 private stati

  • c#程序定期把内存信息记录到log日志示例

    设立一个定时器tmrMonitor,该定时器会在程序运行时不断把程序的占用内存和占用线程数写到LOG\MEM目录下.我设置的定时器间隔是3000毫秒,记录后的信息可以用来分析一段时间内程序的运行状况,比如内存泄漏问题. 复制代码 代码如下: /// <summary>/// Timer组件tmrMonitor的Tick事件/// </summary>/// <param name="sender"></param>/// <para

  • C#控制台程序使用Log4net日志组件详解

    C#控制台程序使用Log4net日志组件,供大家参考,具体内容如下 1.Log4net一般都不陌生,但是在配置上不同类型的项目又不相同的地方比如C#控制台程序和C# MVCWeb项目,拿控制台项目为例 项目源码在文章底部 2.首先创建一个控制台程序,引入Log4net.dll --使用NuGet 3.进行一些简单的配置,在App.config文件中配置,如果大家没有App.config文件,可以通过在解决方案中,添加新建项→应用程序配置文件,进行添加. <?xml version="1.0

  • 易语言控制台程序调用窗口的组件详解

    最近有小伙伴问我,易语言的模块或者控制台程序怎么调用窗口的组件,现在我发经验,喜欢的关注哦,给大家解决了,大神不要喷 其实易语言里面的那些按钮啊编辑框啊都是类,什么是类自己百度,不啰嗦.其实易语言里面的那些按钮啊编辑框啊都是类,什么是类自己百度,不啰嗦. 而在窗口显示的其实是类实体化,有可视类(可以看见.点击等)的属性类型而在窗口显示的其实是类实体化,有可视类(可以看见.点击等)的属性类型 向文本型啊,整数型啊都是一个类型,不过是原生的支持库的,科普完成向文本型啊,整数型啊都是一个类型,不过是原

  • 微信小程序中的swiper组件详解

    微信小程序中的swiper组件 微信小程序中的swiper组件真的是简单方便 提供了页面中图片文字等滑动的效果 <swiper> <swiper-item></swiper-item> <swiper-item></swiper-item> <swiper-item></swiper-item> </swiper> 这里的就是一个滑块视图容器:而就是你希望滑动的东西,可以是文字也可以是image 其中swipe

  • 微信小程序 modal弹框组件详解

    微信小程序  modal: 这里对微信小程序中 modal组件进行详细解析,我想开发微信小程序的小伙伴可以用到,这里小编就记录下modal的知识要点. modal modal类似于javascript中的confirm弹框,默认情况下是一个带有确认取消的弹框,不过点击取消后弹框不会自动隐藏,需要通过触发事件调用函数来控制hidden属性. 官方文档 .wxml <modal hidden="{{hidden}}" title="这里是title" confir

  • 微信小程序自定义模态弹窗组件详解

    小程序自带一个showModal弹窗,调用很简单,但是限制很多,title有字数限制,中间的content也只能放文字不能放组件,所以作为一个前端碰到那种连续好几个跟微信自带的模态弹窗风格一模一样,但是功能又花里胡哨的UI稿,就不能忍受频繁的复制粘贴了.自己写了一个组件,虽然调用起来比微信自带的麻烦一点,但是还蛮实用的. 效果大概长这样. 上代码: wxml: <!-- 自定义模态弹窗 --> <view class="modalDIY" wx:if="{{

  • 微信小程序  modal弹框组件详解

    微信小程序  modal: 这里对微信小程序中 modal组件进行详细解析,我想开发微信小程序的小伙伴可以用到,这里小编就记录下modal的知识要点. modal modal类似于javascript中的confirm弹框,默认情况下是一个带有确认取消的弹框,不过点击取消后弹框不会自动隐藏,需要通过触发事件调用函数来控制hidden属性. 官方文档 .wxml <modal hidden="{{hidden}}" title="这里是title" confir

  • 微信小程序 radio单选框组件详解及实例代码

    微信小程序单选框radio 相关文章: 微信小程序 Button 微信小程序 radio 微信小程序 slider 微信小程序 switch 微信小程序 textarea 微信小程序 picker-view 微信小程序 picker 微信小程序 label 微信小程序 input 微信小程序 form 微信小程序 checkbox 实现效果图: radio-group 单选群组,内部由多个radio组成 属性名 类型 默认值 说明 bindchange EventHandle   radio-g

  • C# 使用 log4net 日志组件的方法

    一. 什么是 log4net Apache log4net 库是帮助程序员将日志语句输出到各种输出目标的工具,它是从Java中的Log4j迁移过来的一个.Net版的开源日志框架.log4net 的一个显著特征是分层记录器的概念,使用这些记录器可以有选择地控制任意粒度输出日志语句.主要特征如下: 支持多个框架 输出到多个日志记录目标 分层日志记录体系结构 XML 配置 动态配置 日志记录上下文 久经考验的架构 模块化和可扩展设计 高性能和灵活性 二.C# 使用 log4net 添加Nuget 包,

  • 微信小程序 WXDropDownMenu组件详解及实例代码

    微信小程序 WXDropDownMenu组件详解,这里给个小的示例,帮助大家学习理解, 功能: 适用于商品列表筛选与功能菜单跳转 先来看下效果图: 思路与步骤: 布局方面,整体使用dl来写,二级包在dd中,用ul li来写:交互方面,点击某一级菜单,关闭兄弟子菜单,点击某子菜单关闭所有菜单. 1.使用dt做出第一级菜单 2.使用dd嵌套第二级菜单,初始隐藏.position为absolute,使用z-index浮出页面层 /*总菜单容器*/ .menu { display: block; hei

  • Windows和夜神模拟器上抓包程序mitmproxy的安装使用详解

    目录 windows 一.介绍说明 二.安装以及配置 三.mitmdump的使用 夜神模拟器 一.安装过程 1.准备 2.安装命令,在.mitmproxy目录下运行cmd 3.重命名+推送至手机 4.安装mitm证书到手机adb shell操作: 5.查看是否成功: ** windows ** 一.介绍说明 mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler.Charles的功能,只不过它是一个控制台的形式操作. mitmproxy还有两个关联组件.一个是mitmd

随机推荐