| <!-- |
| ============LICENSE_START======================================================= |
| Copyright (C) 2021-2022 Nordix Foundation |
| ================================================================================ |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| SPDX-License-Identifier: Apache-2.0 |
| ============LICENSE_END========================================================= |
| --> |
| |
| <configuration scan="true" scanPeriod="30 seconds" debug="false"> |
| |
| <include resource="org/springframework/boot/logging/logback/defaults.xml" /> |
| <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> |
| |
| <springProperty scope="context" name="springAppName" source="spring.application.name"/> |
| <springProperty scope="context" name="username" source="security.auth.username"/> |
| <springProperty scope="context" name="loggingFormat" source="logging.format"/> |
| |
| <property name="currentTimeStamp" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}"/> |
| |
| <appender name="jsonConsole" |
| class="ch.qos.logback.core.ConsoleAppender"> |
| <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> |
| <providers> |
| <pattern> |
| <omitEmptyFields>true</omitEmptyFields> |
| <pattern> |
| { |
| "logTimeStamp": "${currentTimeStamp:-}", |
| "logTypeName": "", |
| "logLevel": "%level", |
| "traceId": "%X{traceId:-}", |
| "statusCode": "", |
| "principalId": "${username:-}", |
| "serviceName": "${springAppName:-}", |
| "message": "%message", |
| "spanId": "%X{spanId:-}", |
| "processId": "${PID:-}", |
| "threadName": "%thread", |
| "class": "%logger{40}", |
| "exception": "%wEx" |
| } |
| </pattern> |
| </pattern> |
| </providers> |
| </encoder> |
| </appender> |
| |
| <appender name="asyncConsole" class="ch.qos.logback.classic.AsyncAppender"> |
| <if condition='property("loggingFormat").equalsIgnoreCase("json")'> |
| <then> |
| <appender-ref ref="jsonConsole"/> |
| </then> |
| <else> |
| <appender-ref ref="CONSOLE"/> |
| </else> |
| </if> |
| </appender> |
| |
| <root level="INFO"> |
| <appender-ref ref="asyncConsole"/> |
| </root> |
| |
| </configuration> |