zoukankan      html  css  js  c++  java
  • log4j2配置文件动态指定日志文件名称

    按照习惯性思维,log4j2中xml中取系统属性应该和log4j一样,但是结果却并不是我们想的这样,存在一定的差别,log4j中的配置可参考 log4j配置文件动态指定日志文件名称 。

    现在就来看看到底有什么区别,java代码这块没什么变化:

    1         if (args.length >= 0) {
    2             System.setProperty("log4fFile", args[0]);
    3         } else {
    4             System.setProperty("log4fFile", "runtimeTest.log");
    5         }

    xml 配置文件:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <configuration status="error">
     4     <appenders>
     5         <Console name="Console" target="SYSTEM_OUT">
     6             <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
     7             <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
     8         </Console>
     9         <RollingFile name="RollingFile" fileName="log/${sys:log4fFile}"
    10                      filePattern="log/$${date:yyyy-MM-dd}/%d{yyyyMMddHHmmss}-${sys:log4fFile}.log">
    11           <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss/} %-5p] [%t] (%c:%L) - %m%n" />
    12           <Policies>
    13             <TimeBasedTriggeringPolicy />
    14             <SizeBasedTriggeringPolicy size="50 MB"/>
    15           </Policies>
    16           <DefaultRolloverStrategy max="100" />
    17        </RollingFile>
    18     </appenders>
    19     <loggers>
    20        <root level="debug">
    21            <appender-ref ref="RollingFile"/>
    22            <appender-ref ref="Console"/>
    23        </root>
    24 
    25     </loggers>
    26 </configuration>

    哪个地方有区别 ,发现了么?

    如果仔细观察,可能会发现取值方式有一点变化  log4j中取值是${log4fFile}, log4j2中取值是${sys:log4fFile}  ,log4j2中再按照log4j的方式去取值,是取不到的。

  • 相关阅读:
    hdu 5045 Contest
    hdu 4068 SanguoSHA
    TSP 旅行商问题(状态压缩dp)
    haoi2015 树上操作
    noi 2015 软件包管理器(树链剖分)
    zjoi2008 树链剖分
    读入优化
    动态规划类型总结
    有关Rujia Liu 动态规划的·一些总结
    输入优化
  • 原文地址:https://www.cnblogs.com/jessezeng/p/5128365.html
Copyright © 2011-2022 走看看