【发布时间】:2017-06-09 18:27:51
【问题描述】:
我正在尝试在 EJB 内的 Bean 中使用 SLF4J 和 log4j,我已经尝试将 log4j.properties 文件放在很多地方,但我在 Glassfish Server 控制台中不断收到此错误:
Grave: log4j:WARN No appenders could be found for logger (uy.ort.enviosya.cadets.services.CadetsBean).
Grave: log4j:WARN Please initialize the log4j system properly.
Grave: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info
这是我的属性文件:
# LOG4J configuration
log4j.rootLogger=DEBUG, Appender1,Appender2
log4j.appender.Appender1=org.apache.log4j.ConsoleAppender
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n
log4j.appender.Appender2=org.apache.log4j.FileAppender
log4j.appender.Appender2.File=C:/Users/Log4jWebDemo.log
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender2.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n
与这个问题相关的问题说我应该把它放在类路径中,但老实说我不知道他们的意思(对 EJB 来说完全是新的)。
这就是我在 bean 中所做的:
@Stateless
public class SomeBean implements SomeBeanRemote {
private static final Logger LOGGER = LoggerFactory.getLogger(SomeBean.class);
@Override
public someMethod() {
LOGGER.info("Prueba");
...
}
...
}
另外,我应该将文件放在 EJB 中吗?那如果我想修改Appender2的目的地呢?
我使用的是 Netbeans 8.2。
更新 1
我已将它放置在我的 ejb 的 META-INF 文件夹中,并且据我所见,它存在于我在 .ear 中部署的 Cadets-ejb.jar 的同一个文件夹中。
但我仍然遇到同样的错误。
部分文件夹结构:
Some
build
Some-ejb
build
dist
nbproject
src
conf
META-INF
java
test
dist
lib
nbproject
src
更新 2
我设法让它工作,但是通过手动将属性文件放置在构建文件夹中的正确位置,这意味着我每次进行干净构建时都需要这样做。
我尝试将它放在 src 文件夹中,但是当我构建它时,它没有被复制,只有 src/conf中的内容被复制,这是该文件的错误位置。
为什么src 中的文件在构建时会被忽略?
这是我现在的结构:
Some
/build
/Some-ejb
/build
/dist
/nbproject
/src
/conf
/META-INF
MANIFEST.MF
/java
/log4j.properties
/test
/dist
/lib
/log4j.jar
/nbproject
/src
我现在知道,一旦创建了 jar,文件就不需要与 META-INF 和我的类包处于同一级别。
解决方案
我把它放在这里解决了
Some
/build
/Some-ejb
/build
/dist
/nbproject
/src
/conf
/META-INF
MANIFEST.MF
/java
log4j.properties
/test
/dist
/lib
/log4j.jar
/nbproject
/src
【问题讨论】:
-
@CarlosLaspina 谢谢,我已阅读并尝试过,但我不断收到错误消息。我已经更新了解释它现在在哪里的问题。
-
您的项目的文件夹结构是什么?你的服务器是什么版本的?
-
@CarlosLaspina 仅包含部分文件夹结构
标签: java jakarta-ee glassfish log4j slf4j