2017-07-19 15 views
2

在我的weblogic服务器中,我有两个独立的应用程序。 APP1是旧的Web应用程序使用log4j的Web服务:使用log4j使用其他应用程序的log文件在weblogic服务器上使用logback的应用程序

# Console logger 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r %-5p %c %x - %m%n 
log4j.appender.CONSOLE.Threshold=ERROR 
# APP logger 
log4j.appender.APP=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.APP.DatePattern=.yyyy-MM-dd-HH 
log4j.appender.APP.File=${logfile.app} 
log4j.appender.APP.encoding=UTF-8 
log4j.appender.APP.layout=org.apache.log4j.PatternLayout 
log4j.appender.APP.layout.ConversionPattern=%d{DATE} %-5p [%t] %-15c : %m%n 

log4j.rootLogger=ERROR, CONSOLE 

log4j.logger.cz.isvs=INFO, APP 
log4j.logger.org.springframework=WARN, APP 

${logfile.app} is replaced during build to target/log/app1.log 

当只有这个应用程序部署的一切工作正常。

二APP 2是春天的引导也与Web服务应用程序中使用的logback:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <springProfile name="default"> 
     <property name="LOGS_HOME" value="/app/app_logs/app2" /> 

     <appender name="appfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
      <file>${LOGS_HOME}.log</file> 
      <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
       <Pattern> 
        %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 
       </Pattern> 
      </encoder> 

      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
       <fileNamePattern>${LOGS_HOME}.log.%d{yyyy-MM-dd-HH}</fileNamePattern> 
      </rollingPolicy> 
     </appender> 

     <root level="error"> 
      <appender-ref ref="appfile" /> 
     </root> 

     <logger name="cz.isvs" additivity="false"> 
      <level value="debug" /> 
      <appender-ref ref="appfile" /> 
     </logger> 


    </springProfile> 

</configuration> 

当我部署的第二个应用程序,以我的WebLogic Server则这两个应用程序登录到app2.log。我真的很困惑为什么以及如何发生这种情况

回答

0

最近我遇到了类似的问题,在weblogic 12c中部署了spring引导程序。经过调查发现,春天开机使用具有一定相关性JAR即sl4fj,的logback,JCL-过sl4j 7月到SLF4J,log4j的环比slf4j.jar等

slf4j manual发现春天的引导记录启动这样的:

JCL超过SLF4J实施,即JCL-过slf4j.jar,将 让你的项目迁移到零碎SLF4J,而不会破坏使用JCL现有软件的兼容性 。同样, log4j-over-slf4j.jar和jul-to-slf4j模块将允许您将 重定向到log4j,并分别将java.util.logging调用到SLF4J。

桥接罐负责将log4j日志,java util日志,公共日志记录日志重定向到slf4j的logback。排除桥接jar依赖项后得到预期结果。

相关问题