log4net 多文件配置

Posted 看一看,想一想,学一学,再想一想!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4net 多文件配置相关的知识,希望对你有一定的参考价值。

C#

log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "App.config"));
testLog = log4net.LogManager.GetLogger("testLog");
warnLog = log4net.LogManager.GetLogger("WarnLog");

 

配置文件:

<log4net>
<root>
<!--从高到低的七个级别:OFF,FATAL,RROR,WARN,INFO,DEBUG,ALL-->
<level value="ALL"/>
</root>
<!--配置程序报错专用-->
<logger name="testLog">
<level value="ALL"/>
<appender-ref ref="testLogApp"/>
</logger>
<appender name="testLogApp" type="log4net.Appender.RollingFileAppender, log4net">
<!--日志路径-->
<param name="File" value="log\\"/>
<!--日期为滚动类型(每天产生一个日志文件)-->
<param name="RollingStyle" value="Date"/>
<!--追加方式-->
<param name="AppendToFile" value="true"/>
<!--日志文件名-->
<param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
<!--关闭固定文件方式-->
<param name="StaticLogFileName" value="false"/>
<maximumFileSize value="600000KB" />
<!--记录格式-->
<layout type="log4net.Layout.PatternLayout, log4net">
<!--%m:消息内容-->
<!--%n:换行-->
<!--%d:输出时间-->
<!--%p:级别-->
<!--%c:类名-->
<!--%F:文件名-->
<param name="ConversionPattern" value="[%d] %p - %m%n"/>
</layout>
<!--过滤器-->
<filter type="log4net.Filter.LevelRangeFilter, log4net">
<param name="LevelMin" value="ALL"/>
<param name="LevelMax" value="OFF"/>
</filter>
</appender>

<logger name="WarnLog">
<level value="WARN"/>
<appender-ref ref="WarnLogApp"/>
</logger>
<appender name="WarnLogApp" type="log4net.Appender.RollingFileAppender, log4net">
<!--日志路径-->
<param name="File" value="log\\"/>
<!--日期为滚动类型(每天产生一个日志文件)-->
<param name="RollingStyle" value="Date"/>
<!--追加方式-->
<param name="AppendToFile" value="true"/>
<!--日志文件名-->
<param name="DatePattern" value="warn_yyyy-MM-dd&quot;.log&quot;"/>
<!--关闭固定文件方式-->
<param name="StaticLogFileName" value="false"/>
<maximumFileSize value="600000KB" />
<!--记录格式-->
<layout type="log4net.Layout.PatternLayout, log4net">
<!--%m:消息内容-->
<!--%n:换行-->
<!--%d:输出时间-->
<!--%p:级别-->
<!--%c:类名-->
<!--%F:文件名-->
<param name="ConversionPattern" value="[%d] %p - %m%n"/>
</layout>
<!--过滤器-->
<filter type="log4net.Filter.LevelRangeFilter, log4net">
<param name="LevelMin" value="ALL"/>
<param name="LevelMax" value="OFF"/>
</filter>
</appender>


</log4net>

Spring Boot配置文件-多环境配置

一. 多环境配置的好处:

1.不同环境配置可以配置不同的参数~

2.便于部署,提高效率,减少出错~

二. properties多环境配置

1. 配置激活选项

spring.profiles.active=dev

2.添加其他配置文件

技术分享

application.properties:

#激活哪一个环境的配置文件
spring.profiles.active=dev
#公共配置
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss:

运行的时候还可以制定激活的环境

java -jar myapp.jar --spring.profiles.active=prd

YAML多环境配置

1.配置激活选项

spring:
     profiles:
        active: dev    

2.在配置文件添加三个英文状态下的短横线即可区分

---
spring:
   profiles: dev

application.yml

#激活哪一个环境的配置文件
spring:
  profiles:
    active: prd
#公共配置
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
---
spring:
  profiles: dev
server:
  port: 8081
---
spring:
  profiles: test
server:
  port: 8082
---
spring:
  profiles: prd
server:
  port: 8083

这种情况是报错的:Duplicate key: spring

正确的配置:

#激活哪一个环境的配置文件
#公共配置
spring:
  profiles:
    active: prd
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
---
spring:
  profiles: dev
server:
  port: 8081
---
spring:
  profiles: test
server:
  port: 8082
---
spring:
  profiles: prd
server:
  port: 8083

.两种配置方式的比较

1. Properties配置多环境,需要添加多个配置文件,YAML只需要一个配件文件

yml文件本身具有区分不同环境的能力

2.书写格式的差异,yaml相对比较简洁,优雅

3. YAML的缺点:不能通过@PropertySource注解加载。如果需要使用@PropertySource注解的方式加载值,那就要使用properties文件。

讲真,还是喜欢properties的配置形式,yml形式的优雅?没啥感觉~哈哈~

以上是关于log4net 多文件配置的主要内容,如果未能解决你的问题,请参考以下文章

log4net在Asp.net Mvc中的应用配置与介绍

C# log4net 多线程问题

log4net配置文件解析

外部文件中的 Log4Net 配置不起作用

log4net 使用与配置 每天一份log文件

您可以在代码中配置 log4net 而不是使用配置文件吗?