目次
2. springboot はマジック API を統合します
2.4、プログラムを開始し、インターフェイスにアクセスします
1 はじめに
今日、プロジェクトで問題が発生しました。springboot バックエンド プロジェクトでは、log4j を使用してログを出力することが多く、対応するログ レベルも同時に設定されます。ただし、log.info("xxxx") は開発プロセス中に誤ってログを出力するために使用されるため、オンライン レベルも info レベルで制御されます。通常は問題ありませんが、今日は非常に長いメッセージの送信があり、ログは追跡のためにこのメッセージをコンソールに出力するだけです。ただし、ログではキャッシュと並列書き込みが有効になっていないため、IO がブロックされ、プログラムが正常に応答できなくなります。
通常、この問題の解決策は次のとおりです。
- プログラムを直接再起動する
- Arths を使用してログ レベルを動的に調整する
Arths はオンライン トラブルシューティングに非常に適した優れたツールで、このシナリオでは、サーバーを再起動せずにログ レベルを直接かつ動的に調整できます。そこで今日は、ログレベルを動的に調整できる別のツール、magic-api を紹介します。マジック API
2. springboot はマジック API を統合します
2.1、Maven 依存関係を追加
<dependency>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
他のスプリングブート関連の依存関係については、詳細には説明しません。
2.2、application.yml 設定
magic-api:
web: /magic/web # magic-api控制台访问地址
resource: # magic-api数据存储信息配置
location: workspace/magic/data # location表示使用本地文件存储,存储路径为工作目录workspace/magic/data下
datasource: # datasource表示数据源存储,这里指定使用的数据源, datasource和location选择一个
2.3、書き込みテストインターフェイス
@Slf4j
@RestController
@RequestMapping("test")
public class TestController {
@GetMapping("index")
public String index(){
// trace 级别日志
LOGGER.trace("-------trace------");
// debug 级别日志
LOGGER.debug("-------debug------");
// info 级别日志
LOGGER.info("-------info------");
// warn 级别日志
LOGGER.warn("-------warn------");
// error 级别日志
LOGGER.error("-------error------");
return "ok";
}
}
2.4、プログラムを開始し、インターフェイスにアクセスします
コンソールに次の情報が表示されたら、正常に起動したことを意味します。
アクセスインターフェイス: http://localhost:8083/test/index。ログ出力を確認できます。
デフォルトのログ レベルは info であるため、info レベル以上の出力が表示されます。
2.5、magic-api脚本
Magic-API コンソールを開きます: http://192.168.0.109:8083/magic/web/index.html
左側のメニュー バーで [インターフェイス] を選択し、空白スペースを右クリックしてグループを作成します。
グループを作成した後、インターフェイスを作成します。
作成後、戻り値の「Hello magic-api」編集ボックスで次のスクリプトを使用します。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
var levelName = "debug";
var packageName = "com.xxx";
LoggerFactory.getILoggerFactory().getLogger(packageName).setLevel(Level.toLevel(levelName));
return "OK";
springboot では lombok が使用され、デフォルトの logback が使用されるため、ここでの impor 実装クラスが正しく見つかる必要があります。それ以外の場合は効果がありません。
入力後、右上隅の実行ボタンをクリックします。実行後、テスト インターフェイス アドレスに再度アクセスできます。
ログ レベルがデバッグ用に調整されており、プログラムを再起動する必要がないことがわかります。
3. Magic-API のその他の構文
Magic-API は実際には JVM のスクリプト言語を通じて挿入され、他の豊富な機能を提供します。ここでは詳しくは説明しませんが、ゆっくりと体験する必要があります。他の機能の構文については、次のドキュメントを参照してください。
ここではレンガを投げて翡翠を始めるだけです。
4. 注意すべき事項
magic-api を使用する際の注意点は、このような便利な機能があるため、オンライン上でむやみにこのプラグインを使用すると、人為的な攻撃を受けやすくなります。したがって、外部ネットワークへのアクセスは可能な限り避けてください。私たちの解決策は、ng プロキシを外部に直接公開せず、内部の研究開発のトラブルシューティングにのみ使用することです。
コードに統合する必要があるこの使用方法と比較すると、arth には自然な利点があるかもしれませんが、magic-api にも独自の長所があるため、両方のアプローチを使用して相互に学習することができます。