log4net使用记录
1. log4net简介
log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。Java平台下,它还有一个姐妹组件——log4j。
log4net的下载地址:http://logging.apache.org/log4net/download.html
2. log4net的组成
log4net主要由五部分组成,分别为Appenders、Filters、Layouts、Loggers和Object Renders。
下面说一下日志的等级,它们由高到底分别为:
OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL
其中OFF表示停用所以日志记录,ALL表示所有日志都可以记录。
Logger实现的ILog接口,ILog定义了5个方法(Debug,Inof,Warn,Error,Fatal)分别对不同的日志等级记录日志。这5个方法还有5个重载。我们以Debug为例说明一下,其它的和它差不多。
示例
<?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="INFO_RollingFileAppender" type="log4net.Appender.RollingFileAppender" > <param name="Encoding" value="utf-8"/> <!--定义文件存放位置--> <file value="Logs\\Info\\Info.log" /> <appendToFile value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <rollingStyle value="Composite" /> <!--最大变换数量--> <maxSizeRollBackups value="-1" /> <!--最大文件大小--> <maximumFileSize value="10MB" /> <!--日志文件名是否为静态--> <datePattern value="yyyy-MM-dd" /> <layout type="log4net.Layout.PatternLayout"> <!--输出格式--> <!--样例:[2022-03-09 16:03:48,629] Error--> <conversionPattern value="[%date]%c %message%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="INFO" /> <param name="LevelMax" value="INFO" /> </filter> </appender> <appender name="ERROR_RollingFileAppender" type="log4net.Appender.RollingFileAppender" > <param name="Encoding" value="utf-8"/> <!--定义文件存放位置--> <file value="Logs\\Error\\Error.log" /> <appendToFile value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <rollingStyle value="Composite" /> <!--最大变换数量--> <maxSizeRollBackups value="-1" /> <!--最大文件大小--> <maximumFileSize value="10MB" /> <!--日志文件名是否为静态--> <datePattern value="yyyy-MM-dd" /> <layout type="log4net.Layout.PatternLayout"> <!--输出格式--> <!--样例:[2022-03-09 16:03:48,629] Error--> <conversionPattern value="[%date] %message%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR" /> <param name="LevelMax" value="ERROR" /> </filter> </appender> <appender name="StockJobAppender" type="log4net.Appender.RollingFileAppender" > <param name="Encoding" value="utf-8"/> <!--定义文件存放位置--> <file value="Logs\\Info\\TaskJob.log" /> <appendToFile value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <rollingStyle value="Composite" /> <!--最大变换数量--> <maxSizeRollBackups value="-1" /> <!--最大文件大小--> <maximumFileSize value="10MB" /> <!--日志文件名是否为静态--> <datePattern value="yyyy-MM-dd" /> <layout type="log4net.Layout.PatternLayout"> <!--输出格式--> <!--样例:[2022-03-09 16:03:48,629] Error--> <conversionPattern value="[%date]%c %message%newline" /> </layout> </appender> <root> <appender-ref ref="INFO_RollingFileAppender" /> <appender-ref ref="ERROR_RollingFileAppender" /> <level value="DEBUG" /> </root> <logger name="NHibernate"> <level value="WARN" /> </logger> <logger name="StockJobLogger" additivity="false"> <level value="DEBUG"></level> <appender-ref ref="StockJobAppender"/> </logger> </log4net>
配置启用总体有两种方式:1.显式代码加载;2.配置使用;
显式代码加载
1.在系统启动的开始直接启用;
如可以在web 的global的appcation_start 里面使用代码
log4net.Config.XmlConfigurator.Configure(); 该函数有可选参数:fileName表示配置文件路径;
2.在要添加的系统中的程序集文件 properities/Assimbly.cs 添加配置
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")],其中ConfigFile 参数可选,如果没设置,则从系统的配置文件加载配置,如果有设置,从设置的路径加载配置
配置加载
在系统的配置文件里面加上如下设置:
<add key="log4net.Config" value="log4net.config"/>
<add key="log4net.Config.Watch" value="True"/>
第一句 用于表示log4net需要加载的配置文件在哪里。如果是在系统配置文件,则直接写系统配置文件名称即可,如web项目写web.config,winform则写App.config
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~