使用外部文件进行日志记录配置,日志文件为空

问题描述 投票:0回答:1

我尝试通过外部文件配置日志记录。 WLS 10.3.6,startWebLogic.properties包括:

-Dproject_name_home=D:\path\to\project_home ^
-Dlogging.config=${project_name_home}/conf/logback.xml ^
-Dlogging.path=${project_name_home}/log ^
-Dlogging.file=${project_name_home}/log/out.log ^
-Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Slf4jLogger

out.log是在项目主文件夹中创建的,但它是空的。

根据应用程序内部使用的log logback.xml,而不是来自外部文件:

19:05:27,621 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
19:05:27,622 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
19:05:27,622 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [zip:D:/Weblogic10.3.6/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/project_name/pjckx7/war/WEB-INF/lib/_wl_cls_gen.jar!/logback.xml]

怎么了?请帮助配置使用外部文件的日志记录。

我的外部logback.xml是:

<configuration>

  <property name="LOG_PATH" value="${project_home}/log" />

  <property name="LOG_FILE" value="${LOG_PATH}/out.log" />

  <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_FILE}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>${LOG_PATH}/archive/out/out-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
    <timeBasedFileNamingAndTriggeringPolicy
        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
       <maxFileSize>100MB</maxFileSize>
    </timeBasedFileNamingAndTriggeringPolicy>
   </rollingPolicy>
   <encoder>
      <pattern>%d{dd/MM/yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%ex</pattern>
   </encoder>
</appender>

   <logger name="package.name" level="debug">
      <appender-ref ref="ROLLING" />
   </logger>  
</configuration>

在应用程序内部配置日志,application.yml是:

logging:
 level:
    package:
        name: DEBUG
 path: ${project_home}/logs
 pattern:
  console: "${CONSOLE_LOG_PATTERN:%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %maskedM%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}}"
  file: "${FILE_LOG_PATTERN:%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:%5p} ${PID:- } --- [%t] %-40.40logger{39} : %maskedM%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}}"
logback
1个回答
1
投票

因此,通过外部logback.xml记录配置的后续步骤是:

在WLS启动文件中设置logging.config(外部logback.xml的路径)。

另外,在application.yml中定义的日志记录级别需要在WLS启动文件中配置(logging.level。参数,根据问题需要设置logging.level.package.name参数)。

其他包的级别(未在application.yml中定义)在logback.xml中配置。

应删除其他参数(logging.path,logging.file)。

所有其他参数都像以前一样在外部logback.xml中配置。

© www.soinside.com 2019 - 2024. All rights reserved.