Spring プロファイル、異なる Log4j2 構成 質問する

Spring プロファイル、異なる Log4j2 構成 質問する

私の application.yml には次の内容が記載されています:

logging: 
  config: classpath:log4j2.debug.yml

そして、他のいくつかのプロファイル。アプリケーションを起動すると、次の画面が表示されます。

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

プロファイルされたものの横に log4j2.xml を置くだけで動作します。これは依存関係が欠落しているか、log4j2 では不可能であると考えられます。

参照:ブートログレベル私が試してみたらそれが可能になるはずだと言っている?

ベストアンサー1

私の場合、yaml ファイルではなくプロパティ ファイルを使用しています。ログ ファイルを 2 つ用意しました。1 つはすべてをコンソールに記録するもの、もう 1 つはファイルに記録するものです。そこで、log4j2-dev.xml と log4j2-file.xml という 2 つの log4j2 構成ファイルを作成しました。

私は 2 つの Spring プロファイルを使用します。デフォルトのプロファイルと「dev」という名前のプロファイルです。log4j2 構成ファイルを切り替えるために、次の内容を含むファイル application.properties を作成しました。

spring.profiles.active=
logging.config=classpath:log4j2-file.xml

また、別のプロパティ ファイル application-dev.properties があり、これは Spring が "dev" プロファイルを検出すると自動的にアクティブ化されます。これには次の内容が含まれます。

logging.config=classpath:log4j2-dev.xml

log4j2-dev.xml 構成を使用する場合は、application.properties の "spring.profiles.active=" の値として "dev" を追加するだけです。

このページで Feiyu Zhou の回答をご覧ください。彼は Yaml 構成ファイルを使用したソリューションを提示しています。application.properties で log4j2 パスを定義するにはどうすればいいですか?

もちろん、application.propertiesのlogging.config属性を削除し、log4j2.xmlのlog4j2-file.xmlの名前を変更することもできます。これは、Springプロファイルによってトリガーされる必要がなく、Log4j2によってデフォルトでロードされます。

おすすめ記事