ホームページ  >  記事  >  Java  >  Spring Boot のログ管理の詳細な紹介を深く理解する

Spring Boot のログ管理の詳細な紹介を深く理解する

黄舟
黄舟オリジナル
2018-05-11 11:16:291698ブラウズ

この記事では、Spring Boot ログ管理の関連情報を詳しく紹介します。必要な方はぜひ参考にしてください。

はじめに

Spring Boot はすべての内部ログに Commons Logging を使用しますが、デフォルト設定では、Java Util Logging、Log4J、Log4J2、Logback などの共通ログのサポートも提供します。各ロガーは、コンソールまたはファイルを使用してログの内容を出力するように構成できます。

log出力形式rreee出力コンテンツ要素は次のとおりです。

プロセス ID

セパレータ — 実際のログの開始を識別します
  • スレッド名 — 角括弧で囲まれます (コンソール出力が切り詰められる場合があります)
  • ロガー名 — 通常はソース コードのクラス名を使用します
  • ログの内容
  • コンソール出力
  • Spring Boot では、ERROR、WARN、INFO レベルのログがデフォルトでコンソールに出力されるように構成されています。
  • 2 つの方法で DEBUG レベルに切り替えることができます:

  • 1. コマンドの実行後に –debug フラグを追加します (例: $ java -jar myapp.jar –debug
  • 2) application.propertiesdebug=true を設定します。このプロパティを true に設定すると、コア ロガー (埋め込みコンテナ、休止状態、および Spring を含む) がより多くのコンテンツを出力します。ただし、自分のアプリケーションのログはDEBUGレベルでは出力されません。

カラフルな出力

端末が ANSI をサポートしている場合、カラー出力を設定するとログが読みやすくなります。 application.propertiesspring.output.ansi.enabled パラメータを設定することでサポートされます。

1.NEVER: ANSI カラー出力を無効にする (デフォルト オプション)


2.DETECT: 端末が ANSI をサポートしているかどうかを確認し、サポートしている場合はカラー出力を使用します (推奨オプション) 3.ALWAYS: 常に ANSI カラー形式の出力を使用します、端末がサポートしていない場合、多くの干渉情報が存在するため、

$ java -jar myapp.jar –debug

     2.在application.properties中配置debug=true,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。

多彩输出

如果你的终端支持ANSI,设置彩色输出会让日志更具可读性。通过在application.properties中设置spring.output.ansi.enabled参数来支持。

     1.NEVER:禁用ANSI-colored输出(默认项)

     2.DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项)

     3.ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用

文件输出

Spring Boot默认配置只会输出到控制台,并不会记录到文件中,但是我们通常生产环境使用时都需要以文件方式记录。

若要增加文件输出,需要在application.properties中配置logging.filelogging.path属性。

     1.logging.file,设置文件,可以是绝对路径,也可以是相对路径。如:logging.file=my.log

     2.logging.path,设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:logging.path=/var/log

日志文件会在10Mb大小的时候被截断,产生新的日志文件,默认级别为:ERROR、WARN、INFO *

级别控制

在Spring Boot中只需要在application.properties中进行配置完成日志记录的级别控制。

配置格式:logging.level.*=LEVEL

     1.logging.level:日志级别控制前缀,*为包名或Logger名

     2.LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

举例:

logging.level.com.juzi=DEBUG com.juzi包下所有class以DEBUG级别输出

logging.level.root=WARN root日志以WARN级别输出

自定义日志配置

由于日志服务一般都在ApplicationContext创建前就初始化了,它并不是必须通过Spring的配置文件控制。
因此通过系统属性和传统的Spring Boot外部配置文件依然可以很好的支持日志控制和管理。

根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载:

2016-08-19 10:22:04.233 INFO 7368 --- [   main] com.juzi.AsyncTest      : Started AsyncTest in 10.084 seconds (JVM running for 12.545)

Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml)

自定义输出格式

在Spring Boot中可以通过在application.properties配置如下参数控制输出格式:

     1.logging.pattern.console:定义输出到控制台的样式(不支持JDK Logger)

     2.logging.pattern.file

ファイル出力


の使用はお勧めしません。Spring Bootのデフォルト設定はコンソールに出力されるだけで、ファイルには記録されません, しかし、通常、本番環境で使用する場合は、ファイルに記録する必要があります。 🎜🎜 ファイル出力を増やすには、application.propertieslogging.file または logging.path プロパティを設定する必要があります。 🎜🎜 1.logging.file、設定ファイル。絶対パスまたは相対パスを指定できます。例: logging.file=my.log🎜🎜🎜 2. logging.path でディレクトリを設定すると、spring.logが作成されます。 logging.path=/var/log のようなログの内容をディレクトリ > ファイルに書き込みます。🎜🎜サイズが 10Mb になるとログ ファイルは切り詰められ、新しいログ ファイルが作成されます。デフォルトのレベルは次のとおりです: ERROR 、 WARN 、 INFO *🎜🎜🎜レベル制御🎜🎜🎜 Spring Boot では、ログのレベル制御を完了するには、application.properties で設定するだけで済みます。 🎜🎜設定形式: logging.level.*=LEVEL🎜🎜 1.logging.level: ログレベル制御プレフィックス、* はパッケージ名またはロガー名です 🎜🎜🎜 2 .LEVEL: オプション TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF🎜🎜🎜例:🎜🎜logging.level.com.juzi=DEBUG com.juziパッケージ内のすべてのクラスはDEBUG レベルで出力🎜🎜🎜logging.level.root=WARN ルート ログは WARN レベルで出力されます🎜🎜🎜カスタマイズされたログ構成🎜🎜🎜通常、ログ サービスは ApplicationContext が作成される前に初期化されるため、 、Spring の設定ファイルを通じて制御する必要はありません。 🎜そのため、ログの制御と管理は、システム プロパティと従来の Spring Boot 外部構成ファイルを通じて引き続き適切にサポートできます。 🎜🎜さまざまなログシステムに応じて、正しくロードできるように、次のルールに従って設定ファイル名を整理できます: 🎜
    1.Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy logback日志配置
     2.Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
     3.Log4j2:log4j2-spring.xml, log4j2.xml
     4.JDK (Java Util Logging):logging.properties
🎜Spring Boot では、ログ設定として -spring を付けたファイル名を使用することを公式に推奨しています (例: logback- spring.xml (logback.xml ではありません) 🎜🎜🎜 カスタム出力形式 🎜🎜🎜 Spring Boot では、application.properties で次のパラメータを設定することで出力形式を制御できます: 🎜🎜 1 .logging.pattern.console: コンソールへの出力のスタイルを定義します (JDK Logger はサポートされていません) 🎜🎜🎜 2.logging.pattern.file: スタイルを定義しますファイルへの出力の数 (サポートされていません) JDK Logger をサポート)🎜🎜🎜🎜

以上がSpring Boot のログ管理の詳細な紹介を深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。