更改HikariCP日志文件

时间:2018-02-24 13:57:34

标签: java slf4j hikaricp

我目前正在使用带有logback-classic-1.2.3的Sl4j 1.7.25

将logback.xml放在tomcat的类路径中,即WEB-INF / classes,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${catalina.home}/logs/foodini.log</file>
    <append>true</append>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <Pattern>[%d{dd-MMM-yyyy HH:mm:ss.SSS}] [%logger] [%-5level] - %msg%n</Pattern>
    </encoder>
  </appender>


  <root level="ALL">
    <appender-ref ref="FILE" />
  </root>

</configuration>

这很好用,所有内容都记录在tomcat logs目录下的foodini.log文件中。

现在不幸的是,HikariCp也会以大约30秒的间隔记录到同一个文件。它基本上写了池事件和泄漏等等。我需要在一个单独的文件中说hikari.log,而不是在foodini.log中,这应该只是我的webapp的日志,以避免混乱。

我试过了:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${catalina.home}/logs/foodini.log</file>
    <append>true</append>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <Pattern>[%d{dd-MMM-yyyy HH:mm:ss.SSS}] [%logger] [%-5level] - %msg%n</Pattern>
    </encoder>
  </appender>


  <appender name="HIKARI" class="ch.qos.logback.core.FileAppender">
    <file>${catalina.home}/logs/hikari.log</file>
    <append>true</append>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <Pattern>[%d{dd-MMM-yyyy HH:mm:ss.SSS}] [%logger] [%-5level] - %msg%n</Pattern>
    </encoder>
  </appender>

  <logger name="com.zaxxer.hikari">
    <appender-ref ref="HIKARI" />
  </logger>

  <root level="ALL">
    <appender-ref ref="FILE" />
  </root>

</configuration>

它确实创建了一个名为hikari.log的新文件,但所有内容仍然记录在foodini.log中

对于我使用的任何一个servlet:

private static final Logger LOG = LoggerFactory.getLogger(ServeletName.class);

获取记录器并且工作正常。

编辑:在logback文件中添加了一个logger配置,现在登录到foodini.log和hikari.log这两个文件......现在我需要在foodini.log文件中输入hikari日志

1 个答案:

答案 0 :(得分:1)

对于任何感兴趣的人,我创建的配置logback.xml几乎是正确的,只缺少一件事,那就是logger元素上的additivity属性。如果没有设置为false,hikari日志将转到两个文件而不是专门转到hikari.log文件,继续更新和工作配置示例以获取两个不同的日志文件,一个在tomcat webapp之前,一个用于hikari配置,池和错误日志

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${catalina.home}/logs/foodini.log</file>
    <append>true</append>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>[%d{dd-MMM-yyyy HH:mm:ss.SSS}] [%logger] [%-5level] - %msg%n</Pattern>
    </encoder>
</appender>

<appender name="HIKARI" class="ch.qos.logback.core.FileAppender">
    <file>${catalina.home}/logs/hikari.log</file>
    <append>true</append>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>[%d{dd-MMM-yyyy HH:mm:ss.SSS}] [%logger] [%-5level] - %msg%n</Pattern>
    </encoder>
</appender>

<logger name="com.zaxxer.hikari" level="ALL" additivity="false">
    <appender-ref ref="HIKARI" />
</logger>

<root level="ALL">
    <appender-ref ref="FILE" />
</root>

相关问题