【问题标题】:Logging data to different log files using log4j2?使用 log4j2 将数据记录到不同的日志文件?
【发布时间】:2014-12-08 13:00:42
【问题描述】:

我目前正在开发一个应用程序,它将为不同的目的生成 2 个不同的日志文件。由于我是 log4j2 的新手,我无法实现它。这是我的配置文件(log4j2.xml):

<?xml version="1.0" encoding="UTF-8"?>
  <Configuration status="WARN">
    <Properties>
      <Property name="log-path">C:/Users/460681/Desktop/SourceFiles</Property>
    </Properties>
    <Appenders>
      <Console name="console-log" target="SYSTEM_OUT"> 
        <PatternLayout 
          pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
      </Console> 
      <RollingFile name="info-log" fileName="${log-path}/SplunkOADC.log"
         filePattern="${log-path}/SplunkOADC-%d{yyyy-MM-dd}.log">
         <PatternLayout>
           <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n
           </pattern>
         </PatternLayout>
         <Policies>
           <TimeBasedTriggeringPolicy interval="1"
             modulate="true" />
         </Policies>
         <Filters>
           <ThresholdFilter level="error" onMatch="DENY"   onMismatch="NEUTRAL"/>
           <ThresholdFilter level="trace" onMatch="DENY"   onMismatch="NEUTRAL"/>
           <ThresholdFilter level="info" onMatch="ACCEPT"   onMismatch="DENY"/>
         </Filters>
       </RollingFile>
       <RollingFile name="error-log" fileName="${log-path}/SplunkOADC-error.log"
            filePattern="${log-path}/SplunkOADC-error-%d{yyyy-MM-dd}.log">
         <PatternLayout>
           <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
           </pattern>
         </PatternLayout>
         <Policies>
           <TimeBasedTriggeringPolicy interval="1"
              modulate="true" />
         </Policies>
         <Filters>
           <ThresholdFilter level="error" onMatch="ACCEPT"   onMismatch="DENY"/>
           <ThresholdFilter level="trace" onMatch="DENY"   onMismatch="NEUTRAL"/>
           <ThresholdFilter level="info" onMatch="DENY"   onMismatch="NEUTRAL"/>
         </Filters>
       </RollingFile>
       <RollingFile name="trace-log" fileName="${log-path}/SplunkOADC-trace.log"
          filePattern="${log-path}/SplunkOADC-trace-%d{yyyy-MM-dd}.log">
          <PatternLayout>
            <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
            </pattern>
          </PatternLayout>
          <Policies>
            <TimeBasedTriggeringPolicy interval="1"
              modulate="true" />
          </Policies>
          <Filters>
            <ThresholdFilter level="error" onMatch="DENY"   onMismatch="NEUTRAL"/>
            <ThresholdFilter level="trace" onMatch="ACCEPT"   onMismatch="DENY"/>
            <ThresholdFilter level="info" onMatch="DENY"   onMismatch="NEUTRAL"/>
          </Filters>
        </RollingFile>
     </Appenders>
     <Loggers>
       <Root level="debug">
         <AppenderRef ref="info-log" level="info"/>
         <AppenderRef ref="trace-log" level="trace"/>
       </Root>
     </Loggers>
  </Configuration>

我已经尝试过过滤器,但我不确定它是否是正确的方法。这是我尝试使用 log4j2 记录的 java 方法

logger.entry("Enter The app");
String report_index_data =
      "select REPORT_MODE, INDEX_ID from TABLE_NAME";
ResultSet rs = db.selectQuery(report_index_data, conn);
while(rs.next()){
 logger.info("report_index_data =" +rs.getString("report_index_data"));
}
logger.exit();

谢谢!

【问题讨论】:

  • 实际发生了什么?你有任何日志吗?
  • 是的,我正在获取所有三个日志,但它们都没有数据。有时当我将根级别更改为跟踪时,所有数据都会记录到跟踪日志中。

标签: java logging log4j2


【解决方案1】:

在配置中添加一个新的记录器。

    <root level="debug">
        <appender-ref ref="info-log" level="info"/>
    </root>

    <logger name="logger2">
     <AppenderRef ref="trace-log" level="trace"/>
    </logger>

【讨论】:

    【解决方案2】:

    首先,请注意,如果您的根记录器级别是调试,那么它不会将跟踪级别的日志事件发送到它的任何附加程序;它只会调试级别或更高级别的日志事件到其附加程序。

    其次,您的代码使用logger.entry()logger.exit()。要使这些方法有用,您需要使用带有位置模式的pattern layout,例如模式中的 %location 或 %method。 (例如[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1}.%M - %msg%n)。这将显示您输入/退出的方法的名称。请注意,计算位置信息有一些performance impact

    【讨论】:

      猜你喜欢
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 2016-07-12
      • 2014-03-25
      • 2019-08-31
      • 1970-01-01
      相关资源
      最近更新 更多