使用示例


首先,为了配合演示多个日志记录器的使用方法,修改log4j.xml配置内容如下:

  <?xml version="1.0" encoding="UTF-8"?>
  <Configuration>
      <Appenders>
          <RollingFile name="default" fileName="${sys:LOG_OUT_DIR}/default.log"
                       filePattern="${sys:LOG_OUT_DIR}/$${date:yyyy-MM}/default-%d{MM-dd-yyyy}-%i.log.gz">
              <PatternLayout pattern="%m %n" charset="UTF-8"/>
              <SizeBasedTriggeringPolicy size="500 MB"/>
          </RollingFile>

          <RollingFile name="wechat" fileName="${sys:LOG_OUT_DIR}/wechat.log"
                       filePattern="${sys:LOG_OUT_DIR}/$${date:yyyy-MM}/wechat-%d{MM-dd-yyyy}-%i.log.gz">
              <PatternLayout pattern="%m %n" charset="UTF-8"/>
              <SizeBasedTriggeringPolicy size="500 MB"/>
          </RollingFile>

      </Appenders>
      <Loggers>

          <Logger name="wechat" level="debug">
              <AppenderRef ref="wechat"/>
          </Logger>

          <!-- 配置记录器级别 -->
          <Root level="debug">
              <!-- 输出设置 -->
              <AppenderRef ref="default"/>
          </Root>
      </Loggers>
  </Configuration>

上面的配置文件中共配置两个日志记录器:

  • default:默认根日志记录器,它将记录所有日志内容;
  • wechat:自定义的日志记录器;

示例代码:

  • 使用默认日志记录器输出:

    Logs.get().getLogger().debug("日志将被输出到default.log文件...");
    Logs.get().getLogger().debug("日志内容", e);

    :默认日志记录器是由logger_name参数指定的,默认值为default;

  • 输出日志到wechat.log文件中:

    ILogger _wechat = Logs.get().getLogger("wechat");
    _wechat.debug("日志将被分别输出到wechat.log和default.log文件中");
    //
    if (_wechat.isDebugEnabled()) {
        _wechat.debug("日志内容", e);
    }
    
    // 或者
    Logs.get().getLogger("wechat").info("日志内容");