Spring boot/Spring クラウド ストリーム プロジェクトを使用しています
ConsoleAppender と LoggingEventCompositeJsonEncoder をエンコーダとしてログに Logback を使用します
エラーをログに記録しようとしているときに、メッセージまたは構造化された引数を含むメッセージが渡された場合に備えて、それは機能します
しかし、任意のタイプの例外/スロー可能なものを追加すると、何もログに記録されません
これはログに記録される例です:
appLogger.error("some error message");
appLogger.error("some error message", StructuredArguments.keyValue("param1", "value1"));
これはログに記録されない例です:
appLogger.error("some error message", e); // e is some none null of Exception type object
これは私のlogback xml構成です:
<appender name="JSON_CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<contextName>
<fieldName>app</fieldName>
</contextName>
<timestamp>
<fieldName>ts</fieldName>
<timeZone>UTC</timeZone>
</timestamp>
<loggerName>
<fieldName>logger</fieldName>
</loggerName>
<logLevel>
<fieldName>level</fieldName>
</logLevel>
<callerData>
<classFieldName>class</classFieldName>
<methodFieldName>method</methodFieldName>
<lineFieldName>line</lineFieldName>
<fileFieldName>file</fileFieldName>
</callerData>
<threadName>
<fieldName>thread</fieldName>
</threadName>
<mdc />
<arguments>
<includeNonStructuredArguments>true</includeNonStructuredArguments>
</arguments>
<stackTrace>
<fieldName>stack</fieldName>
</stackTrace>
<message>
<fieldName>msg</fieldName>
</message>
</providers>
</encoder>
</appender>
<logger name="application1" additivity="false">
<appender-ref ref="JSON_CONSOLE" />
</logger>
ここで何が欠けていますか?ドキュメントによると、ロガーが例外でエラーを無視または失敗する理由