有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java tomcat jdbc SlowQueryReport拦截器记录在一个单独的文件中

我正试图将所有缓慢的查询记录在一个单独的文件中。到目前为止,我必须遵循以下Tomcat上下文配置:

<Resource name="jdbc/paymentDB" auth="Container" type="org.apache.tomcat.jdbc.pool.DataSource"
 driverClassName="...oracle..."
...
 jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.QueryTimeoutInterceptor(queryTimeout=2);org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport(threshold=1000,maxQueries=200)"
</Context>

只要我不设置其他类型的记录器,它就会打印到控制台,这就行了。我认为应该补充的一点是,我使用默认的IDE配置在IntelliJ Idea中运行这个测试

我想做的下一件事是登录到一个单独的文件。所以我打开了日志。属性,并进行了以下更改:

handlers = ..., 5slowqueries.org.apache.juli.FileHandler, ...
.handlers =..., 5slowqueries.org.apache.juli.FileHandler, ...

5slowqueries.org.apache.juli.FileHandler.level = ALL
5slowqueries.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
5slowqueries.org.apache.juli.FileHandler.prefix = slow-queries.

org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport.level = ALL
org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport.handlers = 5slowqueries.org.apache.juli.FileHandler

问题是,执行相同的慢速查询,并且之前在控制台中已打印,这次使用此配置,不会创建slow-queries.*文件。(我从IntelliJ Idea运行了这个)

我不知道该怎么做。也许这和IDE有关?我注意到IDEA在Run/Debug Configurations中有一个日志类别,我也尝试过使用这些选项,但没有任何运气


共 (1) 个答案

  1. # 1 楼答案

    我发现了问题。这是IDE。IDEA启动服务器时,会在控制台中打印如下内容:

    Using CATALINA_BASE:   "C:\Users\..."
    Using CATALINA_HOME:   "C:\..."
    another few variables
    

    默认情况下,如果没有更改,日志将在CATALINA_BASE/logs中创建