我正在寻求以下确认:
使用Websphere Application Server管理控制台,我们可以指定一些日志记录配置,并显示应用程序的类(如下所示)。如果我在WAS控制台中启用日志记录,它是否仅在我的应用程序(以及其中提到的其他类)中实现了JUL时才能工作?
默认情况下,使用WAS控制台的日志记录在跟踪文件($ {SERVER_LOG_ROOT} /trace.log)中完成。这可以用于控制台吗? (我想是的,只需将其更改为$ {SERVER_LOG_ROOT} /SystemOut.log)
有没有办法从WAS控制台配置Log4j属性? (我认为不行,因此我们需要使用其他方法使Log4j可配置)。
PS:我知道JUL提供了抽象以及它自己的实现。上述问题要求牢记JUL的实施:)
答案 0 :(得分:3)
您好 我们刚刚通过相同的练习:使用WAS时JUL vs Log4j。我们决定去Log4j。
1)如果你的App使用JUL,你可以从该控制台更改Level。
2)我不确定。
3)否则您无法从WAS控制台更改Log4j。在我们的例子中,我们创建了一个简单的MBean,因此我们可以控制每个WebApp的Lo4j日志级别(通过wsadmin)。 BEA还提供了一个简单易用的JSP,您可以在WebApp中包含一个用于查看每个类别的UI。
如果您决定使用JUL(通过log4j),请务必了解以下含义:
JUL doest没有很多开箱即用的处理程序。
JUL处于JVM级别,所有应用程序都将共享它。如果您开发自定义JUL Hanlder,则所有WebApp将共享相同的实例。
由于JUL Handler很常见,因此很难将每个应用程序拆分为单独的日志文件(每个WebApp一个)。
当使用第三方Lib(Spring,Ibatis等)并且如果您使用JUL时,当您在Spring上将日志级别更改为DEBUG时,它将针对您的所有WebApp进行更改。如果您需要更精细的粒度(在特定的WebApp上更改Spring级别),那么最好在每个WebApp中嵌入Log4j。
希望这会对你有所帮助