输出到不同的媒介
志铭-2020年1月17日 23:18:37
0.简介Log4Net库是Apache log4j框架在 .NET平台下的实现,其开源免费。它可以将日志分差此外品级,以差此外格局,输出到差此外媒介。
官网地点:
Log4Net开源地点:https://github.com/apache/logging-log4net/
NuGet:Install-Package log4net -Version 2.0.8
我发明网上一些关于Log4Net的配置的文章中的配置在我的项目中无法运行,所以以下关于Log4Net的使用是在基于 .net 4.6.1的 ASP .NET MVC项目中,开发工具VS2015。
在项目(此处为Web项目)的配置文件Web.config中添加配置信息
2.1注意事项:"<configSections>"节点必需配置在<configuration>之后的第一个位置,
否则报错,提示:“只允许一个 <configSections> 元素。它必需是根 <configuration> 元素第一个子元素”
可以有多个" <appender name="XXXX"> </appender>",只要在"<root></root>"中添加相应的“<appender-ref ref="XXXX">”
即可以设置多个日志输出的形式,下面我们是把日志以txt文件的形式生存在App_Data/Log文件夹中的
在ASP .NET MVC项目中使用Log4Net,首先要在Global.asax.cs中初始化Log4Net,即添加log4net.Config.XmlConfigurator.Configure();
2.2示例 <!-- ................为Log4Net添加的配置.....开始................--> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <root> <level value="DEBUG" /><!--界说此记录器的日志记录级别。此记录器仅接受此级别(此处即DEBUG级别)或更高级另外事件--> <appender-ref ref="RollingFileTracer" /> </root> <appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net"> <param name="File" value="App_Data/Log/" /><!--日志文件的生存位置为:App_Data/Log/Log.txt--> <param name="AppendToFile" value="false" /><!--日志文件为后续内容附加到已有文件(若是false,则为后续笼罩向前的内存)--> <param name="RollingStyle" value="Composite" /><!--按照文件的巨细和日期滚动文件--> <param name="MaxSizeRollBackups" value="10" /><!--备份文件的个数--> <param name="MaximumFileSize" value="1MB" /><!--如果我们将最大文件巨细设置为1MB并将maxSizeRollBackups设置为10 MB,那么按照日期或文件巨细,它将只保存最后10MB的文件--> <param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" /><!--日志文件名为Logs_20200114.txt的类似格局--> <param name="StaticLogFileName" value="false" /><!--日志文件名,是否固定不乱--> <layout type="log4net.Layout.PatternLayout,log4net"> <!--日志记录的格局--> <!--<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />格局为:时间+[线程]+级别+项目.Controller -messsage+exception.innerMessage--> <param name="ConversionPattern" value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 堕落类:%logger property:[%property{NDC}] - 错误描述:%message%newline" /> <!--格局类似:记录时间:2020-01-15 20:34:37,946 线程ID:[6] 日志级别:DEBUG 堕落类:_008Log4Net.Controllers.HomeController property:[(null)] - 错误描述:Hi I am log4net Debug Level--> </layout> </appender> </log4net> <!-- ................为Log4Net添加的配置.....结束................--> 2.3配置细节说明<level value="DEBUG" />
写入日记的级别:DEBUG以上级别(包罗该级别)
<param name="File" value="App_Data/Log/" />
日志的生存位置:App_Data/Log/, 因为App_Data文件夹下的文件无法被用户下载,,不但愿访谒者下载的文件放到这里(如果是控制台项目是生成到 bin\Debug 下)
<param name="AppendToFile" value="false" />
日志文件为后续内容附加到已有文件(若是false,则为后续笼罩向前的内存)
<param name="RollingStyle" value="Composite" />
见
<layout type="log4net.Layout.PatternLayout,log4net">
见
日志写入文件时,不锁定文本文件,防备多线程时不能写Log,
官方说线程非安适,所以示例中没有写此配置,若是需要可以添加:
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
在Log4Net中日志的level: OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL
一般正式项目中只记录InFo以上
Undone:怎么区分级别(什么时候用什么品级)
Appenders用来界说日志的输出方法,可以生存为文件,可以生存到数据库,可以发送邮件,可以写到长途接收端。
Appender节点下可以配置Filters和Layout来实现日志的过滤和输格外式
在配置文件中配置如下:
<appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net">
此中的type属性可以设置日志生存的方法,具体的type参数值可以查阅 :非常完善的Log4net详细说明
常用的两种方法:
type="log4net.Appender.RollingFileAppender" 暗示将日志以回滚文件的形式写到文件中。
type="log4net.Appender.AdoNetAppender"暗示将日志记录到数据库中。
在配置的Layout节点中可以设置日记记录的格局
5.1设置格局的参数%m(message):输出的日志动静,如ILog.Debug(…)输出的一条动静
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出措施从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句地址的线程ID
%p(priority):等同于:%level 日志确当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志东西的名称
%f(file):输出语句地址的文件名。
%l(line):输出语句地址的行号。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31459.html
- 上一篇: 当url发生变化的时候
- 下一篇:nodejs使用redis实现单例锁