【问题标题】:Change HikariCP Logging file更改 HikariCP 日志文件
【发布时间】:2018-02-24 13:57:34
【问题描述】:

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

tomcat的类路径即WEB-INF/classes里面的logback.xml如下:

<?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 日志目录下的 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 文件中添加了一个记录器配置,现在日志进入文件 foodini.log 和 hikari.log...现在我需要将 hikari 日志从 foodini.log 文件中放入

【问题讨论】:

    标签: java slf4j hikaricp


    【解决方案1】:

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

    <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>
    

    【讨论】:

      猜你喜欢
      • 2018-02-07
      • 2015-04-15
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 2020-08-03
      • 2020-02-12
      • 2015-04-23
      相关资源
      最近更新 更多