C# 日志输出工具库—log4net 安装、配置及简单应用
1、下载和安装
注意每次安装只是安装到本项目中,换了另一个项目需要再次安装和配置。
我使用的是Visual Studio 2013 社区版,在tools中找到NuGet包管理。
搜索log4net并点击安装。
首先进行下载
点击确定安装
安装完成
当然,也可以用NuGet 的控制台来安装
百度搜索 net4log NuGet 或者直接打开下面链接:
NuGet Gallery | log4net 2.0.8 https://www.nuget.org/packages/log4net/2.0.8
然后在控制台输入安装命令:Install-Package log4net -Version 2.0.8
2、配置
以winForm项目为例,需要配置App.config和AssemblyInfo.cs
2.1 配置 App.config
原来的app.config中带了一个startup节点,把log4net的配置放到startup前面。
一共分两部分:configSections 和 log4net。
以下配置可做参考:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <!--站点日志配置部分--> <log4net> <root> <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ALL"/> <appender-ref ref="RollingFileAppender"/> </root> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件名开头--> <file value="Log\\TestLog4net.txt"/> <!--多线程时采用最小锁定--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置--> <datePattern value="(yyyyMMdd)"/> <!--是否追加到文件,默认为true,通常无需设置--> <appendToFile value="true"/> <!--变换的形式为日期,这种情况下每天只有一个日志--> <!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义--> <!--<rollingStyle value="Date"/>--> <!--变换的形式为日志大小--> <!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义--> <RollingStyle value="Size"/> <!--每天记录的日志文件个数,与maximumFileSize配合使用--> <MaxSizeRollBackups value="10"/> <!--每个日志文件的最大大小--> <!--可用的单位:KB|MB|GB--> <!--不要使用小数,否则会一直写入当前日志--> <maximumFileSize value="100MB"/> <!--日志格式--> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%t]%p: %m%n"/> </layout> </appender> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>
关于log4net配置详细的说明可参考下面文章:
非常完善的Log4net详细说明 - CSDN博客 https://blog.csdn.net/binnygoal/article/details/79557746
2.2 配置AssemblyInfo.cs
只需要添加一行代码:
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)] //配置log4net
3、简单应用
首先在文件开头要using log4net;
然后在按钮控件的相应函数下添加loger的声明语句并调用,需要注意的是,这个logger对象是局部的,函数退出后无需手动销毁。不同函数内调用的logger会输出到同一个txt文件中,即bin\debug\Log\TestLog4net.txt。
private void button1_Click(object sender, EventArgs e) { ILog m_log = LogManager.GetLogger("log"); m_log.Debug("这是一个Debug日志" + 2); m_log.Info("这是一个Info日志"); m_log.Warn("这是一个Warn日志"); m_log.Error("这是一个Error日志"); string temp1 = "helloworld"; m_log.Fatal(temp1); }
本篇仅介绍简单应用,基本能够满足日常调试使用,高级功能后续再讨论。
4、参考链接
(1)C# log4net 的配置 - ???笨小孩 - 博客园 https://www.cnblogs.com/weixiaowei/p/8253228.html
(2)“log4net.Core.LoggerManager”的类型初始值设定项引发异常 - CSDN博客 https://blog.csdn.net/eatonfang/article/details/40622945
(3)非常完善的Log4net详细说明 - CSDN博客 https://blog.csdn.net/binnygoal/article/details/79557746