log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。 [1]
log4net是Apache软件基金会Apache Logging Services工程的一部分。Apache日志服务工程致力于为程序调试和审计提供跨语言的日志服务。(百度百科:https://baike.baidu.com/item/log4net/8982554?fr=aladdin)
1.安装NuGet包Log4Net:
我们打开工具->NuGet程序包安装菜单:搜索log4Net
勾选需要安装log4Net的项目,并安装:如下图噻
2.配置
项目Properties下的AddemblyInfo.cs文件,在最后添加:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
后面我们添加一份配置文件:log4net.config,该文件中含有日志的相关配置信息
右键项目名称->新建项->添加log4net.config文件:
我们在文件的最后添加下列代码:
当然,可以根据需要更改
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!--添加配置节点-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net outdate_days="2">
<!--我的日志类-->
<logger name="mylogger">
<level value="DEBUG"/>
<appender-ref ref="myloggerAppender"/>
</logger>
<!--日志保存到文件里面 txt-->
<appender name="myloggerAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径 网站根目录下面的logs-->
<param name="File" value="logs\\"/>
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true"/>
<!--每天记录的日志文件个数,与maximumFileSize配合使用-->
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="10MB"/>
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd".log""/>
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Date"/>
<!--输出样式设置-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d Thread[%t]-->%p-> %m%n"/>
</layout>
</appender>
</log4net>
</configuration>
%m(message) | 输出的日志消息,如ILog.Debug(…)输出的一条消息 |
%n(new line) | 换行 |
%d(datetime) | 输出当前语句运行的时刻 |
%r(run time) | 输出程序从运行到执行到当前语句时消耗的毫秒数 |
%t(thread id) | 当前语句所在的线程ID |
%p(priority) | 日志的当前优先级别,即DEBUG、INFO、WARN…等 |
%c(class) | 当前日志对象的名称 |
%f(file) | 输出语句所在的文件名。 |
%l(line) | 输出语句所在的文件名及行号。 |
%数字 | 表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。 |
3.使用
使用起来非常简单:先声明实例:
mylogger参数是我的日志类名
/// <summary>
/// 日志文件
/// </summary>
private static log4net.ILog _log = log4net.LogManager.GetLogger("mylogger");
_log.Info("正在加载......");
_log.Info("配置文件读取成功!");
_log.Error("相机加载失败!");
方法使用:
Debug(object,/Exception) | _log.Debug("日志", new Exception("错误")); |
Info(object,/Exception) | _log.Info("日志", new Exception("错误")); |
Error(object,/Exception) | _log.Error("日志", new Exception("错误")); |
Fatal(object,/Exception) | _log.Fatal("日志", new Exception("错误")); |
2020-12-17 11:08:55,502 Thread[1]--> INFO->正在加载......
2020-12-17 11:08:55,551 Thread[1]--> INFO->配置文件读取成功!
2020-12-17 11:08:55,745 Thread[1]--> ERROR->相机加载失败!