再生特性がプログラムファイルのときLog4J2は何をロギングありません

レッドアンドレイ・コジョカル:

私はSpringBoot(2.2.4)/ Javaの11のアプリケーションを持っていると私は(.propertiesファイル形式)外部設定ファイルを使用してLog4J2ロギングを実装しよう。ロガーを初期化するコードは以下の通りであります:

public static void initLogger(String fileName) {
  checkLoggingPropertiesFile(fileName);

  try (FileInputStream loggingConfigurationProperties = new FileInputStream(fileName)) {
    ConfigurationSource source = new ConfigurationSource(loggingConfigurationProperties, new File(fileName));
    Configurator.initialize(null, source);
  } catch (IOException ioe) {
    System.err.println("log4j2.properties could not be loaded! " + ioe.getCause() + "/" + ioe.getMessage());
  }

}

コンソールでは、私は次のメッセージが出ます:

Set log configuration file config\log4j2.properties
Set log configuration file config\log4j2.properties

設定ファイルは、ファイルの場所に存在し、それは以下の内容があります。

name = MyPropertiesConfiguration
status = warn
monitorInterval = 30

property.basePath = logs

appenders = rolling, console

appender.rolling.type = RollingFile
appender.rolling.name = fileAppender
appender.rolling.fileName = ${basePath}/MyLogFile-${date:yyyyMMdd}.log
appender.rolling.filePattern = ${basePath}/MyLogFile-${date:yyyyMMdd}-%i.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.rolling.policies.type = Policies
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 10MB

appender.console.type = Console
appender.console.name = consoleAppender
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

loggers = main, springframework

logger.main.name = com.mypackage.main
logger.main.level = debug
logger.main.aditivity = false
logger.main.appenderRef.rolling.ref = fileAppender
logger.main.appenderRef.console.ref = consoleAppender

logger.springframework.name = org.springframework.boot
logger.springframework.level = error
logger.springframework.aditivity = false
logger.springframework.appenderRef.rolling.ref = fileAppender
logger.springframework.appenderRef.console.ref = consoleAppender

rootLogger.level = error
rootLogger.additivity = false
rootLogger.appenderRef.rolling.ref = fileAppender
rootLogger.appenderRef.console.ref = consoleAppender

問題は、何も記録されないことです。ファイルMyLogFile-20200312.logは、それにもかかわらず作成されますが、それは空です。私はクラスパスにこの設定ファイルを配置すると、すべてが期待通りに動作します。あなたは私が間違って何をやっていると指摘していただけますか?

レッドアンドレイ・コジョカル:

さらに問題を調査した後、溶液は、コンフィギュレーション・ファイルをロードすることはかなり簡単なようです。

Configurator.initialize(null, fileName);

当初、私はそれがXMLよりも、異なるファイル形式で働いていたとは思いませんでした。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=453727&siteId=1