検索
ホームページJava&#&チュートリアルログレベルを動的に変更する SpringBoot の操作は何ですか?

従来のアプローチは一般的に次のとおりです:

1. 構成内のログ レベルを変更します

2. アプリケーションを再起動します

3. エラー ログを確認して、問題のトラブルシューティングを行います。問題発生時のトラブル

この処理ではアプリケーションを再起動する必要があり、手間がかかり効率も悪くなりますし、また、大規模なオンラインプロジェクトの場合、自由に停止・再起動することはできません。それでは、アプリケーションを再起動せずにログレベルを動的に変更する方法はあるのでしょうか?

ここで、Lao Wan に、SpringBoot のアクチュエーター コンポーネントを通じてログ レベルを動的に変更する方法を教えてもらいましょう。

1. 依存関係を追加します

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2. アクチュエーターによって公開されるポートを設定します

#启用actuator端口
management.endpoints.enabled-by-default=fasle
#设置actuator的访问根路径,默认是/actuator
management.endpoints.web.base-path=/message
#启用的端点
management.endpoints.web.exposure.include=loggers

ここでは、アクチュエーター/アクチュエーターのデフォルトのアクセス パスを /message に変更しました。プロジェクトの基本アクセス パスと一致して保存されます。

ポートを有効にする 2 つの構成方法:

方法 1: (推奨)

management.endpoints.web.exposure.include=loggers

方法 2: (この方法でテストします)効果なし)

management.endpoint.loggers.enabled=true

追加:情報ポートを無効にする方法

management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true

アクチュエータコンポーネントについては、スプリングの 4 つの主要コンポーネントの 1 つと呼ばれます。ブートには強力な機能があり、誰でもインターネットで情報を見つけて詳細を知ることができます。

アクチュエータのエンドポイント ポートの説明:

##Yesconfigpropsすべての @ConfigurationProperties のコレクション リストを表示します Yes#env#Spring からの ConfigurableEnvironment のプロパティを表示flywayデータベース移行パスがある場合は表示しますはいhealthアプリケーションの正常性情報を表示します (単純な「ステータス」の場合)認証されていない接続を使用してアクセスする場合は が表示され、認証された接続を使用してアクセスする場合は完全な情報の詳細が表示されます)Yesinfoいずれかを表示アプリケーション情報はいliquibaseLiquibase データベースの移行パスがある場合は表示しますはい metrics現在のアプリケーションのメトリクス情報を表示しますYesmappingsコレクションを表示しますすべての @RequestMapping パスのリストYesscheduledtasksアプリケーションにスケジュールされたタスクを表示Yes sessionsSpring セッションでサポートされているセッション ストアからのユーザー セッションの取得と削除を許可します。 Spring Session のリアクティブ Web アプリケーションのサポートを使用している場合は使用できません。 Yesshutdownアプリを正常にシャットダウンできるようにします (デフォルトでは有効になっていません)Nothreaddumpスレッドダンプの実行Yes
ID 説明 デフォルトで有効
auditevents 現在のアプリケーションの監査イベント情報を表示します Yes
beans アプリケーション内のすべての Spring Bean の完全なリストを表示します Yes
条件 表示構成クラスと自動構成クラス構成クラス)およびそれらが適用されるかどうかの理由
#Yes
Web アプリケーション (Spring MVC、Spring WebFlux) を使用する場合、または Jersey)、次のエンドポイントを使用することもできます:

ID

Descriptionデフォルトで有効heapdumGZip 圧縮された hprof ヒープ ダンプ ファイルを返しますYesjolokia HTTP 経由で JMX Bean を公開する (Jolokia がクラスパス上にある場合、WebFlux は使用できません) Yeslogfileログ ファイルを返すcontent (logging.file またはlogging.path 属性が設定されている場合) は、ログ ファイルの内容に関する部分情報を受信するための HTTP Range ヘッダーの使用をサポートします。Yesprometheus Prometheus サーバーによってクロールできる形式でメトリクス情報を表示しますYes
公開するエンドポイントを変更するには、次を使用します。次の手法: 特定のプロパティを含めるおよび除外する:
##Property

Default*##management.endpoints.jmx.exposure.include*management.endpoints.web.exposure.exclude*##management.endpoints.web.exposure.include
management .endpoints.jmx.exposure.exclude
情報、ヘルス # ##################################

include属性列出了公开的端点的ID,

exclude属性列出了不应该公开的端点的ID

exclude属性优先于include属性。包含和排除属性都可以使用端点ID列表进行配置。

*可以用来选择所有端点。

例如,要通过HTTP公开除env和beans端点之外的所有内容,请使用以下属性:

management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans

三、关闭鉴权

一般我们会将actuator和spring security鉴权组件结合使用,防止这些功能端口被随便调用。由于这里是功能演示,先放开actuator相关端口的权限认证。

ログレベルを動的に変更する SpringBoot の操作は何ですか?

此外,如果存在Spring Security,则需要添加自定义安全配置,以允许对端点进行未经身份验证的访问,如以下示例所示:放开所有Endpoint端点进行匹配

@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {
 
@Override
protected void configure(HttpSecurity http) throws Exception {
    http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests()
    .anyRequest().permitAll()
}

}

四 、通过/loggers端口查看日志级别

请求链接:http://localhost:8090/message/loggers

注意上面我说过的,我调整了management.endpoints.web.base-path=/message。如果没有设置此参数,则使用默认的/actuator去访问。

ログレベルを動的に変更する SpringBoot の操作は何ですか?

五、发起http请求修改日志级别

这里演示,修改目录com.wxswj.provider.message.controller的日志级别为debug

请求类型为POST,参数格式是JSON

curl -H "Content-Type: application/json" -X POST --data 
"
{
    "configuredLevel": "DEBUG"
}
" 
http://localhost:8090/message/loggers/com.wxswj.provider.message.controller

大家可以在服务器上通过curl发起http请求,或者通过Postman发起请求。

curl -H "Content-Type: application/json" -X POST --data "{"configuredLevel": "DEBUG"}" http://localhost:8090/loggers/com.wxswj.provider.message.controller

六、查询日志级别修改结果

http://localhost:8090/message/loggers/com.wxswj.provider.message.controller

{
"configuredLevel": "DEBUG",
"effectiveLevel": "DEBUG"
}

说明我们的修改日志级别的请求生效。

以上がログレベルを動的に変更する SpringBoot の操作は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境