回答:
更新:設定で、春ブーツv1.2.0.RELEASEを皮切りapplication.properties
またはapplication.yml
適用されます。リファレンスガイドのログレベルのセクションをご覧ください。
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Spring Bootの以前のバージョンではできません。そのためには、ロギングフレームワーク(log4j、logback)の通常の構成を使用するだけです。適切な設定ファイル(log4j.xml
またはlogback.xml
)をsrc/main/resources
ディレクトリに追加し、必要に応じて設定します。
--debug
コマンドラインからアプリケーションを起動するときに指定することにより、デバッグログを有効にすることができます。
春ブーツ等着色、いくつかのデフォルト値を設定するには、logbackのためにも素敵な開始点を提供base.xmlのあなたは、単にあなたのlogback.xmlファイルに含めることができるファイル。(これは、Spring Bootのデフォルトのlogback.xmlからも推奨されます。
<include resource="org/springframework/boot/logging/logback/base.xml"/>
application.properties
またはの設定application.yml
が適用されます(modulo :
またはorの=
問題---コロンは私にとってはうまくいくようです)。
これは、application.propertiesを使用して行うことができます。
logging.level.=ERROR
- >エラーにルート・ロギング・レベルを設定します
...
logging.level.=DEBUG
- >ルートログレベルをDEBUGに設定します
logging.file=${java.io.tmpdir}/myapp.log
- > TMPDIR / myapp.logへの絶対ログファイルのパスを設定し
たプロファイルを使用してロギングに関するapplication.propertiesのA正気のデフォルトセットは次のようになりた: application.properties:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
application-dev.properties:
logging.level.=DEBUG
logging.file=
お気に入りのIDE内で開発するとき-Dspring.profiles.active=dev
は、アプリの実行/デバッグ構成にas VM引数を追加するだけです。
これにより、ログファイルに出力を書き込まずに、本番環境でのエラーのみのロギングと開発中のデバッグロギングが提供されます。これにより、開発中のパフォーマンスが向上します(SSDドライブを数時間操作できます;))。
logging.level.:DEBUG
spring-boot 1.4.0
:でlogging.level.=DEBUG
アプリケーションが起動せず、エラーが発生します:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
は、の便利な構文ショートカットでありlogging.level.root
、(1)タイプミスと混同されにくい、(2)より明示的である可能性が高い、および(3)=
より全体的な一貫性を提供する割り当て記号で作業するのが望ましいかもしれません構成ファイルに。
ルートログレベルを設定する適切な方法は、プロパティを使用することlogging.level.root
です。この質問が最初に尋ねられてから更新されたドキュメントを参照してください。
例:
logging.level.root=WARN
アプリケーションのパッケージ名がであるとしますcom.company.myproject
。次に、application.propertiesファイルで以下に示すように、プロジェクト内のクラスのロギングレベルを設定できます。
logging.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG
またlogging.level.org.hibernate = DEBUG
、SpringフレームワークWebおよびHibernateのクラスのログレベルのみを設定します。
ログファイルの場所を設定するには
logging.file = /home/ubuntu/myproject.log
Spring Bootを使用している場合は、application.propertiesファイルに次のプロパティを直接追加して、ロギングレベルを設定し、ロギングパターンをカスタマイズし、ログを外部ファイルに保存できます。
これらは、さまざまなログレベルとその順序です。最小<<最大。
オフ<<致命的<<エラー<<警告<<情報<<デバッグ<<トレース<<すべて
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
ログをより鮮やかにカスタマイズするには、このリンクを通過してください。
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
たとえばlog4jなど、別のロギングフレームワークを使用する場合、最も簡単な方法は、スプリングブーツのロギングを無効にして、独自のロギングを実装することです。そうすれば、1つのファイル内のすべてのログレベルを構成できます。つまり、私の場合はlog4j.xmlです。
これを実現するには、これらの行をpom.xmlに追加するだけです。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
おそらく最初の依存関係がすでにあり、他の2つだけが必要です。この例はlog4jのみを対象としていることに注意してください。
以上で、log4j構成ファイル内でブート用のロギングを構成する準備が整いました。
log4j.properties
。
記録:公式ドキュメント、Spring Boot v1.2.0.RELEASEおよびSpring v4.1.3.RELEASEの場合:
ロギングに対して行う必要がある唯一の変更が、さまざまなロガーのレベルを設定することである場合は、「logging.level」プレフィックスを使用してapplication.propertiesでそれを行うことができます。例えば、
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
「logging.file」を使用して、(コンソールに加えて)ログを記録するファイルの場所を設定することもできます。
ロギングシステムのより詳細な設定を構成するには、対象のLoggingSystemでサポートされているネイティブ構成形式を使用する必要があります。デフォルトでは、Spring Bootはシステムのデフォルトの場所(Logbackの場合はclasspath:logback.xmlなど)からネイティブ構成を取得しますが、「logging.config」プロパティを使用して構成ファイルの場所を設定できます。
より詳細に設定したい場合は、ログ設定ファイル名「logback.xml」または「logback-spring.xml」を追加してください。
application.propertiesファイルに、次のように入力します。
logging.config: classpath:logback-spring.xml
loback-spring.xmlで、次のように入力します。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>sys.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="{project-package-name}" level="TRACE">
<appender-ref ref="BUSINESS_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="ROOT_APPENDER" />
</root>
</configuration>
既存の答えは素晴らしいです。ログをグループ化し、グループ全体のログレベルを設定できる新しいスプリングブート機能を皆さんと共有したいと思います。
ドキュメントの例:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
それはより多くの柔軟性をもたらす素晴らしい機能です。
私の現在の構成では、application.yamlで次のように定義しています。
logging:
level:
ROOT: TRACE
私はspring-boot:2.2.0.RELEASEを使用しています。そのようなTRACEレベルを持つパッケージを定義できます。
春のブートプロジェクトでは、logging.level.root = WARNを書き込むことができますが、ここで問題は、devtoolsの依存関係を追加した場合でも再起動する必要があります。変更すると、プロパティファイルに値が自動検出されなくなります。この制限について知りましたソリューション、つまり、アクチュエータをpom.xmlに追加し、以下のようにロガーレベルをpostmanクライアントのURLバーhttp:// localhost:8080 / loggers / ROOTまたは http:// localhost:8080 / loggers / comに渡すことができます。 .mycompany と本文では、以下のようなjson形式を渡すことができます
{
"configuredLevel": "WARN"
}
Eclipse IDEでプロジェクトがMavenの場合は、プロジェクトをクリーンアップしてビルドし、変更を反映してください。
Springboot 2では、次のような環境変数を使用してルートロギングレベルを設定できます。
logging.level.root=DEBUG
または、次のようにパッケージの特定のログを設定できます。
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
、キャメルケースの構文を使用して
Settings
- >Config Vars
セットlogging.level.com.yourpackage
所望のレベル(INFO、ERROR、DEBUG)へ。