【问题标题】:log4j initialization issuelog4j 初始化问题
【发布时间】:2012-09-04 04:27:39
【问题描述】:

首先我需要说我是 Java 和 Java 相关技术的新手。
最近我有一个 Java 的大项目。它有客户端和服务器端。当我尝试调用客户端应用程序时,它给了我以下警告:

`log4j:WARN No appenders could be found for logger (org.jboss.security.SecurityAssociation).  
log4j:WARN Please initialize the log4j system properly.`  

好的,log4j 似乎找不到它的属性文件。我没有找到,所以我写了一个新的:

log4j.rootLogger=info, stdout, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.file=server.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n`

现在我不知道该把它放在哪里。文档说,它必须在类路径中 - 所以我尝试将它放入 clientwebwebinfo 文件夹的 /src/ 子目录中。我也尝试了项目的根文件夹 - 但它一直给我警告。
有人知道“如何找到放置 log4j.properties 文件的位置”主题的好手册吗?或者也许我必须在 jboss 配置文件的某个地方写下我正在使用以下log4j.properties 文件?

【问题讨论】:

  • 你能提供你的项目结构吗?在那之后也许我可以说更多。

标签: java jboss log4j


【解决方案1】:

您可以通过不同的方式配置log4j properties

  • 正如你所说,它必须在classpath,对于任何Web 应用程序的默认类路径都是WEB-INF/classes,你可以将log4j.properties 文件放在那里。如果不是 Web 应用程序,请尝试查找所有类所在的位置,通常位于 bin 文件夹中。
  • 其他方式是你可以通过VM args配置它

-Dlog4j.configuration=file:/C:/testing/mylog4j.properties

【讨论】:

  • 好的,最后我在我们项目的众多文件夹之一中找到了WEB-INF目录,在其中添加了子目录classes,并将文件log4j.properties放在classes中。它有效!谢谢你的帮助,它让我省了很多麻烦。:)
【解决方案2】:

保留一个共享库(任何名称的文件夹)并将其附加到服务器的类路径中。您可以在此文件夹中放置任何外部 jar、log4j 配置等。由于它已附加到您服务器的类路径中,因此将被加载.

注意:如果您对此文件夹进行任何更改,您需要重新启动服务器才能使更改生效。

希望对你有帮助!!!☺

【讨论】:

    猜你喜欢
    • 2011-05-22
    • 2017-11-11
    • 1970-01-01
    • 2020-12-25
    • 2011-10-13
    • 2011-10-29
    • 2020-10-17
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多