0
私たちはアプリケーションを持っています。条件がある場合。条件に基づいて、真の場合は、いくつかのログメッセージを1つのファイルに書き出します。それ以外の場合は、メッセージを別のファイルに記録します。いくつかの条件に基づいて異なるファイルにログインする
ログは、ログレベルに基づくのではなく、条件に基づいて発生する必要があります。
yamlファイルを使用してdropwizardでどのように可能ですか?
私たちはアプリケーションを持っています。条件がある場合。条件に基づいて、真の場合は、いくつかのログメッセージを1つのファイルに書き出します。それ以外の場合は、メッセージを別のファイルに記録します。いくつかの条件に基づいて異なるファイルにログインする
ログは、ログレベルに基づくのではなく、条件に基づいて発生する必要があります。
yamlファイルを使用してdropwizardでどのように可能ですか?
これは、サポートされています。ここに私の例があります:
server:
rootPath: /api/*
requestLog:
appenders: []
applicationConnectors:
- type: http
port: 9085
logging:
level: INFO
loggers:
"my-log-1":
level: DEBUG
additive: false
appenders:
- type: file
currentLogFilename: /home/artur/var/log/test1.log
archivedLogFilenamePattern: /home/artur/var/log/test1.log%d.log.gz
archivedFileCount: 5
logFormat: '[%level] %msg%n'
"my-log-2":
level: DEBUG
additive: false
appenders:
- type: file
currentLogFilename: /home/artur/var/log/test2.log
archivedLogFilenamePattern: /home/artur/var/log/test2.log%d.log.gz
archivedFileCount: 5
注:設定でタブを使用することはできません。
この構成では、2つのロガーが作成されます。最初は「my-log-1」と呼ばれ、2番目は「my-log-2」と呼ばれます。
あなたは今、自分のアプリケーションでは、たとえば、Javaクラスでこれらのロガーを作成することができます。
public class Application extends io.dropwizard.Application<Configuration>{
private static final Logger log = Logger.getLogger("my-log-1");
private static final Logger log2 = Logger.getLogger("my-log-2");
@Override
public void run(Configuration configuration, Environment environment) throws Exception {
log.info("Test1"); // writes to first file
log2.info("Test2"); // logs to seconds file
}
public static void main(String[] args) throws Exception {
new Application().run("server", "/home/artur/dev/repo/sandbox/src/main/resources/config/test.yaml");
}
}
は2つのロガーとファイルの先頭にその作成に注意してください。
これはロガーのように使用できるようになりました。あなたの条件を追加し、離れてログインします。
int random = new Random().nextInt();
if(random % 2 == 0) {
log.info("Test1"); // writes to first file
} else {
log2.info("Test2"); // logs to seconds file
}
私はそれがあなたの質問に答える願って、
おかげで、
アルトゥル
ありがとう!これは私にとってもうまくいく。ログパターンを "%m%n"に設定するには、YAMLにもう1行追加してください。 – pMan