分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

Log4Net ?之将自定义属性记录到文件中 (三)

发布时间:2023-09-06 02:19责任编辑:傅花花关键词:暂无标签

即解决了将自定义属性记录到数据库之后。一个新的想法冒了出来,自定义属性同样也能记录到文件中吗?答案是肯定的,因为Log4Net既然已经考虑到了数据库记录方式,当然也一定考虑到了其它的记录方式。but how,how,how(这句话来源于电影功夫熊猫)。接下来让我们看看如何将自定义属性记录到文件中。

  上菜之前我先做个小补充,首先我们用到的消息载体依然是LogMessage,LogMessage类的代码可以查看"也用 Log4Net  之将日志记录到数据库的配置 (一)"。自定义属性的名称依然是UserID,当然,你可以输出更多自定义属性,自已加就成了。对应该的后台代码依然是我的上一篇文章 "也用 Log4Net 之将日志记录到数据库的后台实现 (二)"。是不是很好,同样的代码可以支持多种日志输出方式,这便是Log4Net的优势之一。

  好了,上菜:

 ???<logger name="MisTxtLogger"> ?????<level value="ALL"/> ?????<appender-ref ref="MisTxtFile" /> ???</logger>
 ???<!--Txt记录形式--> ???<!--信息日志配置--> ???<appender name="MisTxtFile" type="log4net.Appender.RollingFileAppender"> ?????<param name="File" value="D:\\MisLog\\" /> ?????<param name="AppendToFile" value="true" /> ?????<param name="MaxFileSize" value="10240" /> ?????<param name="MaxSizeRollBackups" value="100" /> ?????<param name="StaticLogFileName" value="false" /> ?????<param name="DatePattern" value="yyyyMMdd" /> ?????<param name="RollingStyle" value="Date" /> ???????????<!--自定义成员 --> ?????<parameter> ???????<parameterName value="@UserID" /> ???????<dbType value="Int32" /> ???????<layout type="JJ.Data.LogCommon.CustomLayout"> ?????????<conversionPattern value="%UserID" ?/> ???????</layout> ?????</parameter> ?????
?????<layout type="JJ.Data.LogCommon.CustomLayout"> ????????<param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c %n%m %n消息描述:%UserID%n" /> ?????</layout>
???</appender>

  

  在后台代码中:把加载的配置节点名称改成"MisTxtLogger",就可以应用文本输出的配置了。

 ???_log = log4net.LogManager.GetLogger("MisTxtLogger"); 

  

  这就是文件记录形式的配置,你记得把他放到配置文件中的 <log4net></log4net>中就可以了。重点来看以下配置,是从上面的配置中截出来的,为了说明方便。

 ?????<!--自定义成员 --> ?????<parameter> ???????<parameterName value="@UserID" /> ???????<dbType value="Int32" /> ???????<layout type="JJ.Data.LogCommon.CustomLayout"> ?????????<conversionPattern value="%UserID" ?/> ???????</layout> ?????</parameter> ???????????<layout type="JJ.Data.LogCommon.CustomLayout"> ????????<param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c %n%m %n消息描述:%UserID%n" /> ?????</layout>

  

  在文本记录形式中,依然要先对自定义属性进行处理,看代码中的“UserID”就是本例中的自定义属性,然后再看它的输入方式:

 ????<layout type="JJ.Data.LogCommon.CustomLayout"> ???????<param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c %n%m %n消息描述:%UserID%n" /> ????</layout>

  

  消息描述:%UserID,在Log4Net中,%UserID所代表的就是自定义属性的值,当然,%n是换行,%m就等同于%message,即消息内容,其它的%元素 我就不一一讲将解了。可以在网上找到详细资料。

好了,按照上面的配置,现在自定义属性也可以输出到文件中了,是不是很简单。

   重点强讲一下:配置的时候一定要小心,因为很多时候日志无法正常输出的原因不是因为代码的问题,而往往是因为配置中的小错误导致的,所以我一直认为Log4Net配置是件可怕的事,一不小心配错了,就无法正常记录日志了。不过它的配置还算是很清晰易懂的。大家刚开始看不懂的时候千万别急。资料看一下,Layout , appendar 等等配置节的含义,然后再去阅读Log4Net的配置文件,你会有种豁然开朗的感觉。

Log4Net ?之将自定义属性记录到文件中 (三)

原文地址:https://www.cnblogs.com/stry/p/9847851.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved