本文介绍了在将log4j1迁移到log4j2之后,将使用默认配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将以下内容添加到我的pom.xml文件中:

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
    </dependency>

为了获得实验支持,还添加了系统属性:

System.setProperty("log4j2.debug", "true");
System.setProperty("log4j1.compatibility","true");
System.setProperty("log4j.configuration","C:/playground/HelloLogging/src/main/resources/log4j.properties");

并按照阿帕奇站点上的说明进行操作:https://logging.apache.org/log4j/2.x/manual/migration.htmlhttps://logging.apache.org/log4j/2.x/manual/compatibility.html

我想继续使用我的v1log4j.properties

由于某些原因,程序使用默认配置运行。未读取我的属性文件,也未写入输出日志文件

是否有人成功使用了log4j2兼容功能?

日志显示:

在下面附上完整轨迹:

    "C:Program FilesJavajdk1.8.0_231injava.exe" -Dlog4j1.compatibility=true -Dlog4j2.debug=true -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=trace -Dlog4j.configurationFile=file:///C:/Logging/src/main/resources/log4j.properties "-javaagent:C:Program FilesJetBrainsIntelliJ IDEA Community Edition 2019.2.4libidea_rt.jar=54099:C:Program FilesJetBrainsIntelliJ IDEA Community Edition 2019.2.4in" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_231jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_231jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_231jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_231jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_231jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_231jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_231jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_231jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_231jrelibext
ashorn.jar;C:Program FilesJavajdk1.8.0_231jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_231jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_231jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_231jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_231jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_231jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_231jrelibjce.jar;C:Program FilesJavajdk1.8.0_231jrelibjfr.jar;C:Program FilesJavajdk1.8.0_231jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_231jrelibjsse.jar;C:Program FilesJavajdk1.8.0_231jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_231jrelibplugin.jar;C:Program FilesJavajdk1.8.0_231jrelib
esources.jar;C:Program FilesJavajdk1.8.0_231jrelib
t.jar;C:playgroundHelloLogging	argetclasses;C:Usersmaryb.m2
epositoryorgapachelogginglog4jlog4j-1.2-api2.13.0log4j-1.2-api-2.13.0.jar;C:Usersmaryb.m2
epositoryorgapachelogginglog4jlog4j-api2.13.0log4j-api-2.13.0.jar;C:Usersmaryb.m2
epositoryorgapachelogginglog4jlog4j-core2.13.0log4j-core-2.13.0.jar" com.mkyong.HelloExample
DEBUG StatusLogger Using ShutdownCallbackRegistry class org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger AsyncLogger.ThreadNameStrategy=UNCACHED (user specified null, default is UNCACHED)
TRACE StatusLogger Using default SystemClock for timestamps.
DEBUG StatusLogger org.apache.logging.log4j.core.util.SystemClock does not support precise timestamps.
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger Took 0.121267 seconds to load 238 plugins from sun.misc.Launcher$AppClassLoader@18b4aac2
DEBUG StatusLogger PluginManager 'Converter' found 46 plugins
DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-1
DEBUG StatusLogger Starting LoggerContext[name=18b4aac2, org.apache.logging.log4j.core.LoggerContext@49993335]...
DEBUG StatusLogger Reconfiguration started for context[name=18b4aac2] at URI null (org.apache.logging.log4j.core.LoggerContext@49993335) with optional ClassLoader: null
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger PluginManager 'ConfigurationFactory' found 6 plugins
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger Missing dependencies for Yaml support, ConfigurationFactory org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory is inactive
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger Missing dependencies for Json support, ConfigurationFactory org.apache.logging.log4j.core.config.json.JsonConfigurationFactory is inactive
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger Using configurationFactory org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@5e853265
DEBUG StatusLogger Not in a ServletContext environment, thus not loading WebLookup plugin.
DEBUG StatusLogger Apache Log4j Core 2.13.0 initializing configuration org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@59e5ddf
DEBUG StatusLogger Installed 1 script engine
DEBUG StatusLogger Oracle Nashorn version: 1.8.0_231, language: ECMAScript, threading: Not Thread Safe, compile: true, names: [nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript], factory class: jdk.nashorn.api.scripting.NashornScriptEngineFactory
DEBUG StatusLogger PluginManager 'Core' found 123 plugins
DEBUG StatusLogger PluginManager 'Level' found 0 plugins
DEBUG StatusLogger PluginManager 'Lookup' found 15 plugins
DEBUG StatusLogger Building Plugin[name=loggers, class=org.apache.logging.log4j.core.config.LoggersPlugin].
DEBUG StatusLogger createLoggers(={})
DEBUG StatusLogger Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin].
DEBUG StatusLogger createAppenders(={})
WARN StatusLogger No Root logger was configured, creating default ERROR-level Root logger with Console appender
DEBUG StatusLogger PluginManager 'Converter' found 46 plugins
DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-2
DEBUG StatusLogger Configuration org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@59e5ddf initialized
DEBUG StatusLogger Starting configuration org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@59e5ddf
DEBUG StatusLogger Started configuration org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@59e5ddf OK.
TRACE StatusLogger Stopping org.apache.logging.log4j.core.config.DefaultConfiguration@4361bd48...
TRACE StatusLogger DefaultConfiguration notified 1 ReliabilityStrategies that config will be stopped.
TRACE StatusLogger DefaultConfiguration stopping root LoggerConfig.
TRACE StatusLogger DefaultConfiguration notifying ReliabilityStrategies that appenders will be stopped.
TRACE StatusLogger DefaultConfiguration stopping remaining Appenders.
DEBUG StatusLogger Shutting down OutputStreamManager SYSTEM_OUT.false.false-1
DEBUG StatusLogger Shut down OutputStreamManager SYSTEM_OUT.false.false-1, all resources released: true
DEBUG StatusLogger Appender DefaultConsole-1 stopped with status true
TRACE StatusLogger DefaultConfiguration stopped 1 remaining Appenders.
TRACE StatusLogger DefaultConfiguration cleaning Appenders from 1 LoggerConfigs.
DEBUG StatusLogger Stopped org.apache.logging.log4j.core.config.DefaultConfiguration@4361bd48 OK
TRACE StatusLogger Reregistering MBeans after reconfigure. Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@6302bbb1
TRACE StatusLogger Reregistering context (1/1): '18b4aac2' org.apache.logging.log4j.core.LoggerContext@49993335
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=StatusLogger'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=ContextSelector'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=Loggers,name=*'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=Appenders,name=*'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=AsyncAppenders,name=*'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=AsyncLoggerRingBuffer'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=Loggers,name=*,subtype=RingBuffer'
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=18b4aac2
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=18b4aac2,component=StatusLogger
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=18b4aac2,component=ContextSelector
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=18b4aac2,component=Appenders,name=DefaultConsole-2
TRACE StatusLogger Using default SystemClock for timestamps.
DEBUG StatusLogger org.apache.logging.log4j.core.util.SystemClock does not support precise timestamps.
TRACE StatusLogger Using DummyNanoClock for nanosecond timestamps.
DEBUG StatusLogger Reconfiguration complete for context[name=18b4aac2] at URI C:playgroundHelloLoggingsrcmain
esourceslog4j.properties (org.apache.logging.log4j.core.LoggerContext@49993335) with optional ClassLoader: null
DEBUG StatusLogger Shutdown hook enabled. Registering a new one.
DEBUG StatusLogger LoggerContext[name=18b4aac2, org.apache.logging.log4j.core.LoggerContext@49993335] started OK.
09:37:08.310 [main] ERROR com.mkyong.HelloExample - This is error : mkyong
09:37:08.315 [main] FATAL com.mkyong.HelloExample - This is fatal : mkyong
DEBUG StatusLogger Stopping LoggerContext[name=18b4aac2, org.apache.logging.log4j.core.LoggerContext@49993335]
DEBUG StatusLogger Stopping LoggerContext[name=18b4aac2, org.apache.logging.log4j.core.LoggerContext@49993335]...
TRACE StatusLogger Unregistering 1 MBeans: [org.apache.logging.log4j2:type=18b4aac2]
TRACE StatusLogger Unregistering 1 MBeans: [org.apache.logging.log4j2:type=18b4aac2,component=StatusLogger]
TRACE StatusLogger Unregistering 1 MBeans: [org.apache.logging.log4j2:type=18b4aac2,component=ContextSelector]
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=Loggers,name=*'
TRACE StatusLogger Unregistering 1 MBeans: [org.apache.logging.log4j2:type=18b4aac2,component=Appenders,name=DefaultConsole-2]
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=AsyncAppenders,name=*'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=AsyncLoggerRingBuffer'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=18b4aac2,component=Loggers,name=*,subtype=RingBuffer'
TRACE StatusLogger Stopping org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@59e5ddf...
TRACE StatusLogger PropertiesConfiguration notified 1 ReliabilityStrategies that config will be stopped.
TRACE StatusLogger PropertiesConfiguration stopping root LoggerConfig.
TRACE StatusLogger PropertiesConfiguration notifying ReliabilityStrategies that appenders will be stopped.
TRACE StatusLogger PropertiesConfiguration stopping remaining Appenders.
DEBUG StatusLogger Shutting down OutputStreamManager SYSTEM_OUT.false.false-2
DEBUG StatusLogger Shut down OutputStreamManager SYSTEM_OUT.false.false-2, all resources released: true
DEBUG StatusLogger Appender DefaultConsole-2 stopped with status true
TRACE StatusLogger PropertiesConfiguration stopped 1 remaining Appenders.
TRACE StatusLogger PropertiesConfiguration cleaning Appenders from 1 LoggerConfigs.
DEBUG StatusLogger Stopped org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@59e5ddf OK
DEBUG StatusLogger Stopped LoggerContext[name=18b4aac2, org.apache.logging.log4j.core.LoggerContext@49993335] with status true

Process finished with exit code 0

enter code here

推荐答案

由于Log4j 2.x也有属性配置格式,要区分这两种格式,需要使用:

  • 指定严格的Log4j 2.x配置文件列表的log4j.configurationFile属性,
  • 指定单个Log4j 1.2配置文件的log4j.configuration属性。

在您的情况下,将log4j.configurationFile替换为log4j.configuration

这篇关于在将log4j1迁移到log4j2之后,将使用默认配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 17:38