在NuGet程序包中搜索log4net并添加,此次我所用版本为2.0.17。如下图:

右键项目,添加新建项,搜索选择应用程序配置文件,命名为log4net.config,步骤如下图:

1.2.1 log4net.config简单配置示例
下面是一个简单的配置示例,详细节点及相应的说明详见 2. 配置文件节点详解 。
点击查看log4net.config配置
1.2.2 设置log4net.config配置文件属性
点击log4net.config,将其文件属性设为始终复制,如下图:

这里有两种方式引入配置文件。
1.3.1 在项目的 AssemblyInfo.cs 中引入配置文件
首先在项目中新建一个Config文件夹,将之前创建的log4net.config文件放入其中,随后在 AssemblyInfo.cs 中添加如下语句:

1.3.2 在项目运行时动态引入配置文件
使用固定语句引入配置文件,如下所示,其中,configFilePath 为配置文件的绝对路径。
我们首先创建名为 Log4Helper 的类,并使用固定的语句实例化对应的Log对象,然后调用其对应的方法即可写入日志。示例代码如下:
点击查看Log4Helper代码
最后一步就是在主程序中引用 Log4Helper 中的日志记录方法,如下所示:
根据上面 log4net.config 配置中 file 节点中的地址,在项目中会生成 Log 文件夹,该文件夹下会生成类似 DefalutLog_2024-07-01.log 的文件。该文件名由 file 节点和 datePattern 节点两部分组合而成,其中,节点需要被设置为 false ,若为 true ,则当前最新日志文件名永远为 file 节点中的名字,其余日志会根据 datePattern 节点自动添加后缀。
打开日志文件,会发现里面只有 WARN 警告信息,例如:
这是因为配置中的 filter 过滤节点,详见注释,将其注释再次运行,则会正常显示全部日志信息。
log4net的主要组成有四部分,分别是 Logger、Appender、Layout、Filter等,详见下方。
以上文的配置为例解释:
level 定义记录的日志级别,就是说,你要记录哪个级别以上的日志,级别由低到高依次是:
在具体写日志时,一般可以这样理解日志等级:
appender-ref,要引用的 appender 的名字,由 Layout 控制输出格式。
最后还要说一个LogManager类,它用来管理所有的Logger。它的GetLogger静态方法,可以获得配置文件中相应的Logger:
以上文的 FileAppenderDefault 节点为例:
点击查看 FileAppenderDefault 节点配置
每个节点均写有注释,这里额外介绍下 appender 的输出方式( type 属性),如下所示:
点击查看 appender 输出方式
filter只能作为 appender 的子元素,type 属性表示 Filter 的类型。常用子元素 param 数量0个或多个,作用设置一些参数。具体例子详见上文 2.2 Appender 节点配置详解 。
额外补充下 filter 的类型说明:
layout 节点只能作为 appender 的子元素。type 属性表示 Layout 的类型。具体例子详见上文 2.2 Appender 节点配置详解 。
额外补充 layout 节点的 type 属性取值:
这其中我们主要使用的还是PatternLayout 类型,而在 ConversionPattern 节点中,我们可以进一步的配置日志输出格式,以 PatterLayout 的格式化字符串输出为例:
点击查看 PatterLayout 的格式化字符串
额外补充下 PatterLayout 格式修饰符:
自定义扩展输出,通过继承 log4net.Layout.PatternLayout 和 log4net.Layout.Pattern.PatternLayoutConverter 类,使用 log4net.Core.LoggingEvent 类的方法得到了要输出的 LogEntity 类的名称。
然后通过反射得到各个属性的值,使用 PatternLayout 类 AddConverter 方法传入得到的值,在 PatternLayoutConverter 中对其进行处理。注意配置文件 Appender 中的 Layout type 用到的类的命名空间以及类名,要同步更改为自定义类的。详见示例:
点击查看自定义拓展类的代码
与之对应的,我们的配置文件也添加以下代码:
点击查看配置文件新增代码
接下来我们新建一个类 LabwareModel,并在帮助类 Log4Helper 中添加调用 CustomLog 的方法,来测试能否输出自定义类 LabwareModel 中的内容。
点击查看自定义类 LabwareModel
帮助类 Log4Helper 如下:
点击查看帮助类 Log4Helper
在主程序中调用进行测试:
根据上面 FileAppenderCustom 配置中 file 节点中的地址,在项目中会生成 Log 文件夹,该文件夹下会生成类似 CustomLog_2024-07-01.log 的文件。打开文件会看到输出内容如下:
点击查看日志输出内容
以上就是关于 Log4Net 配置详解。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5557.html