【问题标题】:WebSphere 7 log level configuration at runtime运行时的 WebSphere 7 日志级别配置
【发布时间】:2013-10-30 01:25:08
【问题描述】:

是否可以通过 «Logging and tracking» 菜单在 WebSphere 7 Application Server 上运行时配置日志记录级别?

我使用 slf4j-log4j12 和 jcl-over-slf4j。

例如。我有以下 log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p: %c - %m%n" />
    </layout>
</appender>

<!-- Root Logger -->
<root>
    <priority value="TRACE" />
    <appender-ref ref="console" />
</root>
</log4j:configuration>

该 log4j 配置将大量调试和跟踪信息打印到 SystemOut.log 文件中。喜欢:

[10/21/13 16:31:18:141 FET] 0000001a SystemOut O 调试:org.springframework.core.convert.support.GenericConversionService - 转换为 '10/21/14' [10/21/13 16:31:18:141 FET] 0000001a SystemOut O TRACE:org.springframework.core.convert.support.GenericConversionService - 检查我是否可以将 java.lang.String 转换为 @org.springframework.format。 annotation.DateTimeFormat @javax.validation.constraints.Future java.util.Date

所以,我尝试添加以下行:

org.springframework.*=info

但是,它并没有影响我的 Web 应用程序的日志级别。

【问题讨论】:

    标签: java spring-mvc log4j slf4j websphere-7


    【解决方案1】:

    在 log4j 中设置级别

    由于您使用 log4j 作为日志框架,因此无法使用 Logging and Tracing 选项配置级别。

    级别应该在log4j配置文件中配置。例如:

    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    
        <!-- console -->
        <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
            <param name="threshold" value="TRACE" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="conversionPattern"
                    value="%-5p (%c.java:%L).%M - %m%n" />
            </layout>
        </appender>
    
        <!-- categories -->
        <category name="org.hibernate">
            <priority value="OFF" />
        </category>
        <category name="org.hibernate.type">
            <priority value="ALL" />
        </category>
        <category name="org.springframework">
            <priority value="INFO" />
        </category>
    
    
        <!-- root -->
        <root>
            <priority value="TRACE" />
            <appender-ref ref="STDOUT" />
        </root>
    </log4j:configuration>
    


    使用默认实现 (JUL)

    另一方面,java.util.logging (JUL) 是 WebSphere Application Server 中首选的日志记录实现,并在 WebSphere Application Server 自己的实现中使用。

    因此,如果您想使用 WAS 日志基础架构,可以尝试以下 SLF4J 配置:

    The Support Authority: A developer's guide to WebSphere Application Server logging 中查看更多信息。

    【讨论】:

    • 感谢您的回复。我尝试使用 slf4j-jdk14。问题是:如果我添加行 org.springframework.*=all 我在日志中只看到 INFO 级别的消息。
    • 没问题。但是您需要查看另一个文件 trace.log 而不是正常的 SystemOut.log。 RAD 仅在控制台中向您显示 SystemOut.log 文件。
    • 我忘了说你也可以在log4j中设置级别。
    • 是的,我可以在 log4j 配置文件中配置级别。但我希望有可能通过 WebSphere 更改日志级别。
    猜你喜欢
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    相关资源
    最近更新 更多