Java Tomcat(8.0.32)lib目录中的HikariCP(2.4.6)不';t日志

Java Tomcat(8.0.32)lib目录中的HikariCP(2.4.6)不';t日志,java,tomcat,logging,tomcat8,hikaricp,Java,Tomcat,Logging,Tomcat8,Hikaricp,当应用程序的war中捆绑了hikari(2.4.6)jar时,日志记录工作很好,但当我们将其移动到Tomcat(8.0.32)/lib目录时,hikari停止日志记录。我在hikaricp github关注过一个类似的问题,在那里有一些实现这一点的指导,但我无法让它发挥作用。对于我们的应用程序,监控池非常重要: 2017-02-01 12:27:17.274调试26240---[l-1 house keeper]com.zaxxer.hikari.pool.HikariPool:HikariPo

当应用程序的war中捆绑了
hikari
(2.4.6)jar时,日志记录工作很好,但当我们将其移动到Tomcat(8.0.32)
/lib
目录时,
hikari
停止日志记录。我在hikaricp github关注过一个类似的问题,在那里有一些实现这一点的指导,但我无法让它发挥作用。对于我们的应用程序,监控池非常重要:

2017-02-01 12:27:17.274调试26240---[l-1 house keeper]com.zaxxer.hikari.pool.HikariPool:HikariPool-1-池统计(总计=10,活动=0,空闲=10,等待=0)

因此,我们需要一种在catalina.out中获取此信息的方法

我的tomcat设置如下所示:

/lib
目录:

和我的
logging.properties

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.AsyncFileHandler.level = FINEST
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter




############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler

# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE

# To see debug messages in TldLocationsCache, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level = FINE

com.zaxxer.hikari.level = FINEST
com.zaxxer.hikari.handlers = 1catalina.org.apache.juli.AsyncFileHandler
请给我提供一些如何让这个工作的信息。 非常感谢

解决方案:

首先,tomcat服务器内部日志必须从更改为。描述了执行此操作的步骤。 假设已经阅读了上面的链接并从
extras
包下载了上述jar(
tomcat juli adapters.jar
tomcat juli.jar

  • log4j.properties
    文件应放在
    tomcat/lib
    目录下
  • tomcat/conf
    目录中删除或重命名
    logging.properties
    文件,这样
    tomcat
    在启动时不会拾取它
  • 将以下jar复制到
    tomcat/lib
    目录:
    log4j-1.2.17.jar
    tomcat juli adapters.jar
  • 将以下jar复制并替换到
    tomcat/bin
    目录:
    tomcat juli.jar
完成上述步骤后,
tomcat
现在应该使用
log4j
进行日志记录

要启用HikariCP日志记录,请执行以下操作:

  • 编辑
    log4j.properties
    文件,并在末尾添加以下行:
    log4j.logger.com.zaxxer.hikari=DEBUG
  • 确保以下JAR存在于
    tomcat/lib
    目录中:
    • HikariCP-2.4.6.jar
    • jcl-over-slf4j-1.7.21.jar
    • slf4j-api-1.7.21.jar
    • slf4j-log4j12-1.7.21.jar
    • jul-to-slf4j-1.7.21.jar
我的
log4j.properties
文件:

log4j.rootLogger = INFO, CATALINA

# Define all the appenders
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Encoding = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\
  INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\
  INFO, HOST-MANAGER

log4j.logger.com.zaxxer.hikari = DEBUG