Extending Log4j2とCreate Custom Pattern using log4j2 in javaの例を試しましたが、ログに2つのフィールドを追加します。これを得るために私は何をする必要がありますか?あなたがログにそのデータを提供する二つの別々のコンバータを作成することができます例時間と名前をいくつかのフィールドをしたい場合はJava Log4j2コンバータカテゴリプラグインログに複数のカスタムフィールドを追加
答えて
は、このマニュアルhttps://logging.apache.org/log4j/log4j-2.2/manual/plugins.html#Converters
を参照してください。例えば
あなたはMyNamePatternConverterを持って、ここでは別名whatIsMyNameとがmyNameを提供することができます。ログパターンでは、それらのいずれかを使用できます。
@Plugin(name="MyNamePatternConverter", category = PatternConverter.CATEGORY)
@ConverterKeys(value = {"whatIsMyName", "myName"})
public class MyNameConverter extends LogEventPatternConverter {
protected MyNameConverter(String name, String style) {
super(name, style);
}
public static MyNameConverter newInstance(String[] options) {
return new MyNameConverter("My name Converter", "name");
}
public void format(LogEvent event, StringBuilder toAppendTo) {
toAppendTo.append("Yuriy");
}
}
とTimePatternConverterは
@Plugin(name = "TimePatternConverter", category = PatternConverter.CATEGORY)
@ConverterKeys(value = {"timeIsNow", "timeNow", "now"})
public class TimeConverter extends LogEventPatternConverter {
protected TimeConverter(String name, String style) {
super(name, style);
}
public static TimeConverter newInstance(String[] options) {
return new TimeConverter("Time Converter", "now");
}
public void format(LogEvent logEvent, StringBuilder toAppendTo) {
toAppendTo.append(new SimpleDateFormat("HH:mm").format(new Date()));
}
}
我々はコンバータと呼ばれる別のパッケージでそれら2を配置します。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config"
status="OFF" packages="converters">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="Time is now %timeIsNow and my name is %whatIsMyName, %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache.log4j.xml" level="all" />
<Root level="all">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>
log4j2.xmlを提供します。
サンプルのメインクラスを作成してテストします。
public class Main {
private static final Logger logger = LogManager.getLogger(ResolverUtil.Test.class);
public static void main(String[] args) {
logger.info("Hello log4j2");
logger.debug("This is debug message");
}
}
これは、このような出力を生成します:
コードは、あなたがこれまでに試しただし、どのようなフィールドを追加したいんTime is now 20:40 and my name is Yuriy, Hello log4j2
Time is now 20:40 and my name is Yuriy, This is debug message
私は2つのフィールド(ConsoleAppender、RollingFileAppenderなど)が必要な4つのカスタムアペンダーを持っています。それは2 * 4 = 8プラグインを書く必要があるのでしょうか、各フィールドごとに2つ書くだけで再利用できますか? –
もちろん、2つのコンバーター(TimeConverter、NameConverter)をお持ちの場合は、すべてのカスタムアペンダーにこれらの2つのフィールドが提供されます。 – yvoytovych
ありがとう! –
- 1. Magento - レビューフォームにカスタムフィールドを追加
- 2. JsonLayoutをlog4j2 jsonの設定に追加
- 3. TFSバグテンプレート+カスタムフィールドの追加
- 4. Log4j2 + Java:asyncLoggerをプログラムで追加します
- 5. RORアプリケーションのオブジェクトにカスタムフィールドを追加
- 6. タスクリストにプロジェクトのカスタムフィールドを追加する
- 7. 私のアプリケーションにカスタムフィールドを追加する
- 8. paypalフォームにカスタムフィールドを追加してリダイレクトページに追加
- 9. Ploneグループにカスタムフィールドを追加する
- 10. RadSchedulerにカスタムフィールドを追加するアポイントメント
- 11. カスタムフィールドにルールを追加する
- 12. Google gsa - keymatchesにカスタムフィールドを追加する
- 13. 注文にカスタムフィールドを追加するMagento2
- 14. テーブルにカスタムフィールドを追加する - joomla
- 15. SugarCRM 6.2 - ユーザープロフィールにカスタムフィールドを追加する
- 16. JIRA Issueタブパネルにカスタムフィールドを追加
- 17. カスタムフィールドをモデルに追加する方法
- 18. Refinery CMS:カスタムエンジンインデックスページにカスタムフィールドを追加する
- 19. Django-registration-reduxカスタムフィールドをアプリケーションに追加
- 20. レールフォームヘルパーにカスタムフィールドを追加する
- 21. log4j2ロガーへのファイル名の追加
- 22. 複数のアイテムを一度にJavaのArrayListに追加する
- 23. android javaのscrollviewに複数のgridviewsを追加するには?
- 24. Javaウィンドウの北部分に複数のオブジェクトを追加する
- 25. shopifyで商品を追加する際のカスタムフィールドを追加
- 26. 複数のクラスインスタンスをjframeに追加
- 27. Javaの複数ラベルにラベルを追加する
- 28. 複数のボタンを複数のLinearLayoutに動的に追加
- 29. カスタムフィールド複数の値、Wordpress、PHP
- 30. WHMCSサーバーの画面 - カスタムフィールドの追加
? – lucasvw