[问题记录]——log4net记录多个级别文件
程序员文章站
2023-08-31 23:26:14
[toc] 前言 不知不觉可都快又一年了,最近这段时间一直在忙着图形方面的东西(确实快给我搞死了),虽说时间还是相对有的,但是精力耗费的十有十一,把问题记录单开一栏,是为了后续记录使用中遇到的问题及相应的解决方法。 Log4net 关于这个日志记录类库,我也不需要多说,具体配置可见: "net co ......
目录
前言
不知不觉可都快又一年了,最近这段时间一直在忙着图形方面的东西(确实快给我搞死了),虽说时间还是相对有的,但是精力耗费的十有十一,把问题记录单开一栏,是为了后续记录使用中遇到的问题及相应的解决方法。
log4net
关于这个日志记录类库,我也不需要多说,具体配置可见:net core webapi基础工程搭建(四)——日志功能log4net。
今天刚好一个网友问我,说业务上需要不同级别存储到不同文件,确实在日志记录上,常规不会把所有级别的日志文件放到同一个,这样会把自己眼给看坏的,因为之前做过这块儿的操作,所以这里也就不多说,直接看代码吧。
首先,我们需要在log4net.config中加上一个新的填充日志的方法,这里说下filter,很明显,这是个过滤器,作用呢就是可以指定记录日志的级别,所以,也就不用多说了,一看便知。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <!-- this section contains the log4net configuration settings --> <log4net debug="false"> <appender name="rollinglogfileappender" type="log4net.appender.rollingfileappender"> <lockingmodel type="log4net.appender.fileappender+minimallock" /> <!--很关键的一句,让日志文件不被占用--> <file value="logs/" /> <appendtofile value="true" /> <rollingstyle value="composite" /> <staticlogfilename value="false" /> <datepattern value="yyyymmdd'.log'" /> <maxsizerollbackups value="10" /> <maximumfilesize value="10mb" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <!--这里就是只记录对应级别的配置--> <appender name="rollingerrorlogappender" type="log4net.appender.rollingfileappender"> <lockingmodel type="log4net.appender.fileappender+minimallock" /> <!--很关键的一句,让日志文件不被占用--> <file value="logs/error/" /> <appendtofile value="true" /> <rollingstyle value="composite" /> <staticlogfilename value="false" /> <datepattern value="yyyymmdd'.log'" /> <maxsizerollbackups value="10" /> <maximumfilesize value="10mb" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> <filter type="log4net.filter.levelrangefilter"> <levelmin value="error" /> <levelmax value="fatal" /> </filter> </appender> <!-- setup the root category, add the appenders and set the default level --> <root> <level value="all" /> <appender-ref ref="rollinglogfileappender" /> <!--这里是新增一个配置--> <appender-ref ref="rollingerrorlogappender" /> </root> </log4net> </configuration>
然后我们来做个测试吧,问题记录以后尽量精简不废话。
测试
在valuescontroller的测试接口更改日志测试为以下代码。
#region ========日志测试======== //日志测试 logutil.info("测试"); logutil.error("错误测试"); #endregion
运行程序。
我们来看下效果,首先默认的日志文件还是记录了多个级别的日志。
再来看下error下面的日志文件。
小结
ok,基本上到这里就结束了,其实这篇东西不多,只是想借此也开一个问题记录栏,毕竟示例是一回事,实际业务使用又是一回事(当然,说起来这个webapi工程好久没动过了,唉,搞毛啊),后续还是会继续鼓捣东西,一点点儿的通过这个示例工程来展示效果。