【问题标题】:WAS Logging - Java Util Logging and Log4jWAS 日志记录 - Java Util 日志记录和 Log4j
【发布时间】:2011-06-17 03:22:35
【问题描述】:
我正在寻求以下方面的确认:
使用 Websphere Application Server 管理控制台,我们可以指定一些日志记录配置,并显示您的应用程序的类(如下所示)。如果我在 WAS 控制台中启用日志记录,它是否仅在我的应用程序(以及其中提到的其他类)已实现 JUL 时才有效?
默认情况下,使用 WAS 控制台的日志记录在跟踪文件 (${SERVER_LOG_ROOT}/trace.log) 中完成。这也可以用来安慰吗? (我认为是的,只需将其更改为 ${SERVER_LOG_ROOT}/SystemOut.log)
是否有任何方法也可以从 WAS 控制台配置 Log4j 属性? (我认为没有,因此我们需要使用其他方式使其 Log4j 可配置)。
PS:我知道 JUL 提供了抽象以及它自己的实现。提出上述问题时要牢记 JUL 实施:)
【问题讨论】:
标签:
java
logging
log4j
websphere
java.util.logging
【解决方案1】:
你好
我们刚刚通过相同的练习:使用 WAS 时的 JUL 与 Log4j。我们决定使用 Log4j。
1) 是的,如果您的应用使用 JUL,您应该能够从该控制台更改关卡。
2) 我不确定。
3) 不,您不能从 WAS 控制台更改 Log4j。在我们的例子中,我们创建了一个简单的 MBean,因此我们可以控制每个 WebApp 的 Lo4j 日志级别(通过 wsadmin)。还有一个来自 BEA 的漂亮而简单的 JSP,您可以将它包含在您的 WebApp 中,以拥有一个查看每个类别的 UI。
如果您决定使用 JUL(通过 log4j),请务必了解以下含义:
JUL 没有很多开箱即用的处理程序。
JUL 处于 JVM 级别,所有你的应用程序都会共享它。如果您开发自定义 JUL Hanlder,所有 WebApp 将共享同一个 Instance。
由于 JUL Handler 很常见,很难将每个 App 拆分为单独的日志文件(每个 WebApp 一个)。
当使用第三方 Lib(Spring、Ibatis 等)并且使用 JUL 时,当您将 Spring 上的 Log Level 更改为 DEBUG 时,它将为您所有的 WebApp 更改。如果您需要更细粒度(在特定 WebApp 上更改 Spring 的级别),那么最好将 Log4j 嵌入每个 WebApp。
希望对你有帮助