log4net是非常强大的日志管理系统,在客户端桌面开发中,大多数情况下我们都是把日志输出到本地文件。为了让大家能够快速开发,特此记录。 配置文件内容
<log4net>
<root>
<!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF
比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录
如果没有定义LEVEL的值,则缺省为DEBUG-->
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender"/>
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Log\\log.txt"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<datePattern value="(yyyyMMdd)"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<RollingStyle value="Size"/>
<MaxSizeRollBackups value="10"/>
<maximumFileSize value="2MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%t]%-5p %c - %m%n"/>
</layout>
</appender>
</log4net>
在AssemblyInfo中添加如下代码,表示log4net从配置文件中读取
//log4net从配置文件中读取配置
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
通过配置以上节点到app.config中还不够,只要程序在运行过程中,需要用到配置管理器,那么很有可能会遇到“配置文件尚未初始化”的错误提示。这是因为在App.Config中,需要将log4net的节点注册进去,以让配置管理器识别。
在app.config中添加如下节点代码:
<!--configSections是在配置文件的最上方,定义节点必须要在第一行上面定义-->
<configSections>
<!-- log4net的定义 -->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
有了以上的配置,我们就可以在代码里面开始初始化日志管理器了。
public class LogService
{
static LogService()
{
Instance = LogManager.GetLogger("需要记录的日志节点名称,可任意填写。填写的名称会记录在日志里面,可以表示是什么程序记录的日志");
}
public static ILog Instance { get; private set; }
}
注意:客户端软件在app.config中配置,web程序在web.config中配置。 祝君玩耍愉快!
本文会经常更新,请阅读原文: https://huchengv5.gitee.io//post/C-log4net%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名胡承(包含链接: https://huchengv5.gitee.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。