Java 为什么log4j2';s${web:rootDir}web查找是否会导致weblogic 12c中的部署出现问题?

Java 为什么log4j2';s${web:rootDir}web查找是否会导致weblogic 12c中的部署出现问题?,java,web-applications,log4j2,weblogic12c,Java,Web Applications,Log4j2,Weblogic12c,log4j2的web查找-${web:rootDir}似乎会在weblogic 12c部署上引起问题 我怀疑当weblogic在部署开始时请求记录器并且无法创建文件时,log4j2 web lookup插件没有初始化 我所做的- 在weblogic.xml的weblogic首选包中添加了slf4j 类路径中存在log4j web依赖项 3.web.xml包含以下内容:- <context-param> <param-name>isLog4jAutoInitiali

log4j2的web查找-
${web:rootDir}
似乎会在weblogic 12c部署上引起问题

我怀疑当weblogic在部署开始时请求记录器并且无法创建文件时,log4j2 web lookup插件没有初始化

我所做的-

  • 在weblogic.xml的weblogic首选包中添加了slf4j

  • 类路径中存在log4j web依赖项

  • 3.web.xml包含以下内容:-

    <context-param>
        <param-name>isLog4jAutoInitializationDisabled</param-name>
        <param-value>true</param-value>
    </context-param>
    
    <listener>
        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
    </listener>
    
    <filter>
        <filter-name>log4jServletFilter</filter-name>
        <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>log4jServletFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    
    
    isLog4jAutoInitializationDisabled
    真的
    org.apache.logging.log4j.web.Log4jServletContextListener
    log4jServletFilter
    org.apache.logging.log4j.web.Log4jServletFilter
    log4jServletFilter
    /*
    要求
    向前地
    包括
    错误
    
    *注意-Log4jServletContextListener放在所有侦听器之前

    -附上stacktrace供您参考

    2019-05-31 19:18:01,742 [STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)' ERROR Unable to create file ${web:rootDir}/logs/Server.log
    java.io.IOException: The filename, directory name, or volume label syntax is incorrect
            at java.io.WinNTFileSystem.canonicalize0(Native Method)
            at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
            at java.io.File.getCanonicalPath(File.java:618)
            at java.io.File.getCanonicalFile(File.java:643)
            at org.apache.logging.log4j.core.util.FileUtils.makeParentDirs(FileUtils.java:142)
            at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:627)
            at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:608)
            at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:113)
            at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:116)
            at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:188)
            at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:145)
            at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:61)
            at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
            at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:958)
            at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:898)
            at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:890)
            at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:513)
            at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:237)
            at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
            at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
            at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
            at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
            at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
            at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
            at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
            at org.apache.logging.log4j.LogManager.getContext(LogManager.java:307)
            at org.apache.log4j.LogManager$PrivateManager.getContext(LogManager.java:215)
            at org.apache.log4j.LogManager.getRootLogger(LogManager.java:70)
            at org.slf4j.impl.Log4jLoggerFactory.<init>(Log4jLoggerFactory.java:66)
            at org.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:72)
            at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:45)
            at org.slf4j.LoggerFactory.bind(LoggerFactory.java:149)
            at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
            at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:390)
            at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:340)
            at org.hibernate.validator.util.LoggerFactory.make(LoggerFactory.java:29)
            at org.hibernate.validator.util.Version.<clinit>(Version.java:24)
            at org.hibernate.validator.engine.ConfigurationImpl.<clinit>(ConfigurationImpl.java:59)
            at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41)
            at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269)
            at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)
            at weblogic.validation.injection.ValidationManager.getDefaultValidationBean(ValidationManager.java:185)
            at weblogic.validation.injection.ValidationManager.bindValidation(ValidationManager.java:61)
            at weblogic.application.naming.EnvironmentBuilder.bindValidation(EnvironmentBuilder.java:497)
            at weblogic.application.naming.EnvironmentBuilder.bindValidation(EnvironmentBuilder.java:489)
            at weblogic.servlet.internal.CompEnv.activate(CompEnv.java:194)
            at weblogic.servlet.internal.WebAppServletContext.activate(WebAppServletContext.java:2866)
            at weblogic.servlet.internal.WebAppModule.activateContexts(WebAppModule.java:1648)
            at weblogic.servlet.internal.WebAppModule.activate(WebAppModule.java:805)
            at weblogic.application.internal.ExtensibleModuleWrapper$ActivateStateChange.next(ExtensibleModuleWrapper.java:317)
            at weblogic.application.internal.ExtensibleModuleWrapper$ActivateStateChange.next(ExtensibleModuleWrapper.java:313)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
            at weblogic.application.internal.ExtensibleModuleWrapper.activate(ExtensibleModuleWrapper.java:121)
            at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:114)
            at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:195)
            at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:190)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
            at weblogic.application.internal.flow.ModuleStateDriver.activate(ModuleStateDriver.java:61)
            at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:145)
            at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:729)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
            at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258)
            at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:48)
            at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
            at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
            at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:226)
            at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:418)
            at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
            at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
            at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
            at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
            at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
            at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
            at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:210)
            at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:118)
            at weblogic.server.AbstractServerService.postConstruct(AbstractServerService.java:78)
            at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1017)
            at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:388)
            at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:430)
            at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456)
            at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:225)
            at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:82)
            at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2488)
            at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98)
            at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:606)
            at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:77)
            at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:231)
            at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:254)
            at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:413)
            at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456)
            at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:225)
            at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:82)
            at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2488)
            at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98)
            at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87)
            at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1162)
            at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1147)
            at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
    
    2019-05-31 19:18:01742[STANDBY]ExecuteThread:'2'队列:'weblogic.kernel.Default(self-tuning)'错误无法创建文件${web:rootDir}/logs/Server.log
    java.io.IOException:文件名、目录名或卷标语法不正确
    位于java.io.WinNTFileSystem.canonicalize0(本机方法)
    在java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
    位于java.io.File.getCanonicalPath(File.java:618)
    位于java.io.File.getCanonicalFile(File.java:643)
    位于org.apache.logging.log4j.core.util.FileUtils.makeParentDirs(FileUtils.java:142)
    位于org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:627)
    位于org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:608)
    位于org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:113)
    位于org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:116)
    位于org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:188)
    位于org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:145)
    位于org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:61)
    位于org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
    位于org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:958)
    位于org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:898)
    位于org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:890)
    位于org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:513)
    位于org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:237)
    位于org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
    位于org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
    位于org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
    位于org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
    位于org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
    位于org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
    位于org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
    位于org.apache.logging.log4j.LogManager.getContext(LogManager.java:307)
    位于org.apache.log4j.LogManager$PrivateManager.getContext(LogManager.java:215)
    位于org.apache.log4j.LogManager.getRootLogger(LogManager.java:70)
    位于org.slf4j.impl.Log4jLoggerFactory(Log4jLoggerFactory.java:66)
    位于org.slf4j.impl.StaticLoggerBinder。(StaticLoggerBinder.java:72)
    位于org.slf4j.impl.StaticLoggerBinder(StaticLoggerBinder.java:45)
    位于org.slf4j.LoggerFactory.bind(LoggerFactory.java:149)
    在org.slf4j.LoggerFactory.performinization上(LoggerFactory.java:124)
    位于org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:390)
    位于org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:340)
    位于org.hibernate.validator.util.LoggerFactory.make(LoggerFactory.java:29)
    位于org.hibernate.validator.util.Version.(Version.java:24)
    位于org.hibernate.validator.engine.configurationmpl.(configurationmpl.java:59)
    位于org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41)
    位于javax.validation.validation$GenericBootstrapImpl.configure(validation.java:269)
    位于javax.validation.validation.buildDefaultValidatorFactory(validation.java:111)
    在weblogic.validation.injection.ValidationManager.getDefaultValidationBean(ValidationManager.java:185)上
    在weblogic.validation.injection.ValidationManager.bindValidation(ValidationManager.java:61)中
    在weblogic.application.naming.EnvironmentBuilder.bindValidation(EnvironmentBuilder.java:497)中
    在weblogic.application.naming.EnvironmentBuilder.bindValidation(EnvironmentBuilder.java:489)中
    位于weblogic.servlet.internal.CompEnv.activate(CompEnv.java:194)
    位于weblogic.servlet.internal.WebAppServletContext.activate(WebAppServletContext.java:2866)
    位于weblogic.servlet.internal.WebAppModule.activateContexts(WebAppModule.java:1648)
    位于weblogic.servlet.internal.WebAppModule.activate(WebAppModule.java:805)
    位于weblogic.application.internal.ExtensibleModuleWrapper$ActivateStateChange.next(ExtensibleModuleWrapper.java:317)
    在weblogic.appl