使用log4net记录日志。
log4net由最重要的三部分组成
1. 记录器(Logger):日志API的使用者通过记录器来发出日志记录请求,并提供日志的内容。在记录日志时,需要指定日志的级别
2.Appenders 输出源:对日志信息进行分类筛选。通过指定优先级,控制程序中日志信息的输出:高于优先级的日志可以被输出,低于优先级的日志则被忽略
主要的作用是,定义输出的格式,内容, 路径,模式(保存到数据库、或者是保存到txt、或者是每次都创建一个txt、或者是滚动创建txt)
3 layout: 自定义输出格式。 写在appender 里面。
log4net配置, 首先创建log4net.config 配置文件,然后再AssemblyInfo.cs文件中写入[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)] , 封装Log4netHelper.cs 创建对象写入日志
<!-- 日志默认值节点 --> <root> <!-- 默认日志对象级别 --> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value="all" /> <!-- 默认日志记录方式 ref为<appender>节点的name属性--> <appender-ref ref="MyColoredConsoleAppender"/> <!--<appender-ref ref="MyRollingFileAppender"/>--> </root> <!-- 注意!!! <root>节点和<logger>节点,如果同时出现, 会先执行root的内容,再执行logger的内容, 有可能会出现重复插入记录的情况, 解决方案:默认节点不设置默认记录方式 -->
1 <log4net> 2 <!--错误日志:::记录错误日志--> 3 <!--按日期分割日志文件 一天一个--> 4 <!-- appender 定义日志输出方式 将日志以回滚文件的形式写到文件中。--> 5 <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> 6 <!--保存路径:下面路径项目启动的时候自动在C盘中创建log、logError文件--> 7 <file value="C:\log\LogError\"/> 8 <!-- 如果想在本项目中添加路径,那就直接去掉C:\ 只设置log\LogError 项目启动中默认创建文件 --> 9 <appendToFile value="true"/> 10 <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> 11 <rollingStyle value="Date"/> 12 <!--这是按日期产生文件夹--> 13 <datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/> 14 <!--是否只写到一个文件中--> 15 <staticLogFileName value="false"/> 16 <!--保留的log文件数量 超过此数量后 自动删除之前的 好像只有在 按Size分割时有效 设定值value="-1"为不限文件数--> 17 <param name="MaxSizeRollBackups" value="100"/> 18 <!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志--> 19 <maximumFileSize value="1GB" /> 20 <!-- layout 控制Appender的输出格式,也可以是xml 一个Appender只能是一个layout--> 21 <layout type="log4net.Layout.PatternLayout"> 22 <!--每条日志末尾的文字说明--> 23 <!--输出格式 模板--> 24 <!-- <param name="ConversionPattern" value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 记录类:%logger 25 操作者ID:%property{Operator} 操作类型:%property{Action}%n 当前机器名:%property%n当前机器名及登录用户:%username %n 26 记录位置:%location%n 消息描述:%property{Message}%n 异常:%exception%n 消息:%message%newline%n%n" />--> 27 28 <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> 29 <!--<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n错误描述:%message%newline %n"/>--> 30 <conversionPattern value="%n========== 31 %n【日志级别】%-5level 32 %n【记录时间】%date 33 %n【线程编号】[%thread] 34 %n【执行时间】[%r]毫秒 35 %n【出错文件】%F 36 %n【出错行号】%L 37 %n【出错的类】%logger 属性[%property{NDC}] 38 %n【错误描述】%message 39 %n【错误详情】%newline"/> 40 </layout> 41 </appender> 42 43 <!--Error日志::: 错误日志--> 44 <logger name="logerror"> 45 <level value="ERROR" /> 46 <appender-ref ref="ErrorAppender" /> 47 </logger> 48 </log4net>