Jakarta ee 日志文件在Log4j2中的位置

Jakarta ee 日志文件在Log4j2中的位置,jakarta-ee,java-8,log4j2,tomcat8,Jakarta Ee,Java 8,Log4j2,Tomcat8,我正在尝试使用Jersey为Java web应用程序项目设置Log4j2。这是我的log4j2.xml文件,保存在WEB-INF/classes中: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="warn"> <Appenders> <Console name="Console" target="SYSTEM_OUT">

我正在尝试使用Jersey为Java web应用程序项目设置Log4j2。这是我的
log4j2.xml
文件,保存在
WEB-INF/classes
中:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">

    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <File name="MyFile" fileName="/home/hans/Dev/Software/Tomcat/logs/all.log">
            <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console" />
            <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
</Configuration>
我试过两种不同的设置。两者都给出相同的错误。以下是两种设置和结果:

<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>/WEB-INF/classes/log4j2.xml</param-value>
</context-param>
log4j2.xml
文件移动到
src
文件夹后,它现在被log4j2拾取。我仍然收到一些警告

log4j:WARN No appenders could be found for logger (org.jose4j.jwa.AlgorithmFactoryFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我使用的BitBucket JWT库使用SLF4J进行日志记录,需要使用

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0.2</version>
    </dependency>

我不知道当配置文件位于
WEB-INF
文件夹中时,它为什么不工作。可能是我的文件夹结构与log4j2定位配置文件的方式不匹配。我也不明白,当我将配置文件移动到
src
时,为什么它会在
/WEB-INF/classes
下找到配置文件,我相信指定的路径是相对于WEB应用程序类路径的根的,因此:

<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>/WEB-INF/classes/log4j2.xml</param-value>
</context-param>

您可以通过设置系统属性
-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE
来更改配置


log4j:WARN
消息不是由Log4j2生成的。只有在类路径中某个地方有一个旧的log4j1.2.xjar文件时,才能看到这些消息



IntelliJ将
src
中的所有资源复制到类路径(WEB-INF/classes)。在构建过程中,它可能会首先清理目标目录,以便删除您在其中手动复制的所有文件。因此,不要手动将文件放入
类中
,此时您只是在与IDE作斗争。标准设置是遵循Maven目录布局,即将配置文件放在
resources
目录中。需要将此目录添加到类路径。有关将文件夹指定为资源文件夹的信息,请参阅IntelliJ帮助

尝试在配置中设置
,查看在Log4j2初始化期间是否发生任何错误。跟踪向控制台提供了更多的输出。问题似乎是log4j2无法找到log4j2.xml文件。我不明白为什么它找不到它。我已经在web.xml文件中添加了一些关于我的文件夹结构和配置的更多信息。这似乎是一个mavenized项目,唯一需要做的就是将文件放入
src/main/resources
,这将触发maven war插件将其打包到
WEB-INF/classes
中。不需要进一步的配置,按照惯例,log4j将在类路径的根目录中查找配置文件,其中包括WEB-INF/classes。我尝试了
/WEB-INF
文件夹中的
log4j2.xml
文件和
/WEB-INF/classes
文件夹中的
log4j2.xml
文件。但它还是找不到。我应该把
log4j2.xml
文件移到其他地方吗?更新了我的答案。我想把
log4j2.xml
放在
src
文件夹中是IJ的解决方案<代码>日志4J:警告是由错误的桥接依赖项引起的。我使用的是
slf4j-log4j12
1.7.22版。更改为
log4j-slf4j-impl
2.0.2版解决了该问题。
log4j:WARN No appenders could be found for logger (org.jose4j.jwa.AlgorithmFactoryFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0.2</version>
    </dependency>
DEBUG StatusLogger Log4jServletContainerInitializer starting up Log4j in Servlet 3.0+ environment.
DEBUG StatusLogger Loaded Provider Provider[priority=10, className=org.apache.logging.log4j.core.impl.Log4jContextFactory, url=jar:file:/home/mikael/Dev/Java/Java%20Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/lib/log4j-core-2.7.jar!/META-INF/log4j-provider.properties, classLoader=ParallelWebappClassLoader
  context: ROOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@4629104a
]
DEBUG StatusLogger Using ShutdownCallbackRegistry class org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry
DEBUG StatusLogger Using the servlet context name "CurrencyRegistry".
DEBUG StatusLogger getConfigURI found [log4j2.xml] in servletContext at [log4j2.xml]
DEBUG StatusLogger Took 0.097889 seconds to load 192 plugins from ParallelWebappClassLoader
  context: ROOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@4629104a

DEBUG StatusLogger PluginManager 'Converter' found 41 plugins
DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-1
DEBUG StatusLogger PluginManager 'ConfigurationFactory' found 4 plugins
DEBUG StatusLogger Missing dependencies for Yaml support
DEBUG StatusLogger Missing dependencies for Json support
DEBUG StatusLogger Using configurationFactory org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@2f824a06
TRACE StatusLogger Trying to find [log4j2.xml] using context class loader ParallelWebappClassLoader
  context: ROOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@4629104a
.
2017-01-18 11:01:06,589 RMI TCP Connection(2)-127.0.0.1 DEBUG Starting LoggerContext[name=CurrencyRegistry] from configuration at log4j2.xml
2017-01-18 11:01:06,590 RMI TCP Connection(2)-127.0.0.1 DEBUG Starting LoggerContext[name=CurrencyRegistry, org.apache.logging.log4j.core.LoggerContext@77feb3ee] with configuration XmlConfiguration[location=/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml]...
2017-01-18 11:01:06,596 RMI TCP Connection(2)-127.0.0.1 DEBUG Shutdown hook enabled. Registering a new one.
2017-01-18 11:01:06,598 RMI TCP Connection(2)-127.0.0.1 DEBUG Initializing configuration XmlConfiguration[location=/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml]
2017-01-18 11:01:06,610 RMI TCP Connection(2)-127.0.0.1 DEBUG Installed script engines
2017-01-18 11:01:07,234 RMI TCP Connection(2)-127.0.0.1 DEBUG Oracle Nashorn Version: 1.8.0_111, Language: ECMAScript, Threading: Not Thread Safe, Compile: true, Names: {nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript}
2017-01-18 11:01:07,235 RMI TCP Connection(2)-127.0.0.1 DEBUG PluginManager 'Core' found 108 plugins
2017-01-18 11:01:07,235 RMI TCP Connection(2)-127.0.0.1 DEBUG PluginManager 'Level' found 0 plugins
2017-01-18 11:01:07,241 RMI TCP Connection(2)-127.0.0.1 DEBUG Log4j2 ConfigurationScheduler: No scheduled items
2017-01-18 11:01:07,242 RMI TCP Connection(2)-127.0.0.1 DEBUG PluginManager 'Lookup' found 14 plugins
2017-01-18 11:01:07,245 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout].
2017-01-18 11:01:07,258 RMI TCP Connection(2)-127.0.0.1 TRACE TypeConverterRegistry initializing.
2017-01-18 11:01:07,259 RMI TCP Connection(2)-127.0.0.1 DEBUG PluginManager 'TypeConverter' found 23 plugins
2017-01-18 11:01:07,281 RMI TCP Connection(2)-127.0.0.1 DEBUG PatternLayout$Builder(pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n", PatternSelector=null, Configuration(/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml), Replace=null, charset="null", alwaysWriteExceptions="null", noConsoleNoAnsi="null", header="null", footer="null")
2017-01-18 11:01:07,282 RMI TCP Connection(2)-127.0.0.1 DEBUG PluginManager 'Converter' found 41 plugins
2017-01-18 11:01:07,283 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.ConsoleAppender].
2017-01-18 11:01:07,296 RMI TCP Connection(2)-127.0.0.1 DEBUG ConsoleAppender$Builder(target="SYSTEM_OUT", follow="null", direct="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout(%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n), name="Console", Filter=null)
2017-01-18 11:01:07,297 RMI TCP Connection(2)-127.0.0.1 DEBUG Starting OutputStreamManager SYSTEM_OUT.false.false
2017-01-18 11:01:07,297 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout].
2017-01-18 11:01:07,299 RMI TCP Connection(2)-127.0.0.1 DEBUG PatternLayout$Builder(pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n", PatternSelector=null, Configuration(/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml), Replace=null, charset="null", alwaysWriteExceptions="null", noConsoleNoAnsi="null", header="null", footer="null")
2017-01-18 11:01:07,318 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.FileAppender].
2017-01-18 11:01:07,322 RMI TCP Connection(2)-127.0.0.1 DEBUG FileAppender$Builder(fileName="/home/mikael/Dev/Software/Tomcat/logs/all.log", append="null", locking="null", advertise="null", advertiseUri="null", createOnDemand="null", Configuration(/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml), bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout(%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n), name="MyFile", Filter=null)
2017-01-18 11:01:07,326 RMI TCP Connection(2)-127.0.0.1 DEBUG Starting FileManager /home/mikael/Dev/Software/Tomcat/logs/all.log
2017-01-18 11:01:07,326 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin].
2017-01-18 11:01:07,327 RMI TCP Connection(2)-127.0.0.1 DEBUG createAppenders(={Console, MyFile})
2017-01-18 11:01:07,328 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef].
2017-01-18 11:01:07,333 RMI TCP Connection(2)-127.0.0.1 DEBUG createAppenderRef(ref="Console", level="null", Filter=null)
2017-01-18 11:01:07,334 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef].
2017-01-18 11:01:07,334 RMI TCP Connection(2)-127.0.0.1 DEBUG createAppenderRef(ref="MyFile", level="null", Filter=null)
2017-01-18 11:01:07,335 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger].
2017-01-18 11:01:07,337 RMI TCP Connection(2)-127.0.0.1 DEBUG createLogger(additivity="null", level="DEBUG", includeLocation="null", ={Console, MyFile}, ={}, Configuration(/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml), Filter=null)
2017-01-18 11:01:07,342 RMI TCP Connection(2)-127.0.0.1 DEBUG Building Plugin[name=loggers, class=org.apache.logging.log4j.core.config.LoggersPlugin].
2017-01-18 11:01:07,343 RMI TCP Connection(2)-127.0.0.1 DEBUG createLoggers(={root})
2017-01-18 11:01:07,345 RMI TCP Connection(2)-127.0.0.1 DEBUG Configuration XmlConfiguration[location=/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml] initialized
2017-01-18 11:01:07,345 RMI TCP Connection(2)-127.0.0.1 DEBUG Starting configuration XmlConfiguration[location=/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml]
2017-01-18 11:01:07,346 RMI TCP Connection(2)-127.0.0.1 DEBUG Started configuration XmlConfiguration[location=/home/mikael/Dev/Java/Java Programs/CurrencyRegistry/target/CurrencyRegistry/WEB-INF/classes/log4j2.xml] OK.
2017-01-18 11:01:07,346 RMI TCP Connection(2)-127.0.0.1 TRACE Stopping org.apache.logging.log4j.core.config.DefaultConfiguration@31af9852...
2017-01-18 11:01:07,346 RMI TCP Connection(2)-127.0.0.1 TRACE DefaultConfiguration notified 1 ReliabilityStrategies that config will be stopped.
2017-01-18 11:01:07,347 RMI TCP Connection(2)-127.0.0.1 TRACE DefaultConfiguration stopping root LoggerConfig.
2017-01-18 11:01:07,347 RMI TCP Connection(2)-127.0.0.1 TRACE DefaultConfiguration notifying ReliabilityStrategies that appenders will be stopped.
2017-01-18 11:01:07,348 RMI TCP Connection(2)-127.0.0.1 TRACE DefaultConfiguration stopping remaining Appenders.
2017-01-18 11:01:07,348 RMI TCP Connection(2)-127.0.0.1 DEBUG Shutting down OutputStreamManager SYSTEM_OUT.false.false-1
2017-01-18 11:01:07,348 RMI TCP Connection(2)-127.0.0.1 DEBUG Shut down OutputStreamManager SYSTEM_OUT.false.false-1, all resources released: true
2017-01-18 11:01:07,349 RMI TCP Connection(2)-127.0.0.1 TRACE DefaultConfiguration stopped 1 remaining Appenders.
2017-01-18 11:01:07,349 RMI TCP Connection(2)-127.0.0.1 TRACE DefaultConfiguration cleaning Appenders from 1 LoggerConfigs.
2017-01-18 11:01:07,349 RMI TCP Connection(2)-127.0.0.1 DEBUG Stopped org.apache.logging.log4j.core.config.DefaultConfiguration@31af9852 OK
2017-01-18 11:01:07,352 RMI TCP Connection(2)-127.0.0.1 TRACE Reregistering MBeans after reconfigure. Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@3b475abf
2017-01-18 11:01:07,352 RMI TCP Connection(2)-127.0.0.1 TRACE Reregistering context (1/1): 'CurrencyRegistry' org.apache.logging.log4j.core.LoggerContext@77feb3ee
<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>/WEB-INF/classes/log4j2.xml</param-value>
</context-param>
<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>log4j2.xml</param-value>
</context-param>