更改 HikariCP 日志文件
Change HikariCP Logging file
我目前正在使用带有 logback-classic-1.2.3
的 Sl4j 1.7.25
把logback.xml放在tomcat的class路径里面,即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 日志目录下的 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 文件
对于任何感兴趣的人,我创建的配置 logback.xml 几乎是正确的,只缺少一件事,那就是记录器元素上的可加性 属性。如果不将其设置为 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>
我目前正在使用带有 logback-classic-1.2.3
的 Sl4j 1.7.25把logback.xml放在tomcat的class路径里面,即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 日志目录下的 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 文件
对于任何感兴趣的人,我创建的配置 logback.xml 几乎是正确的,只缺少一件事,那就是记录器元素上的可加性 属性。如果不将其设置为 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>