0

I am trying to apply masking on my log data while logging them in JSON format. When i apply 2 appenders nested in one appender, only last one is getting affected.

          <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <nestedField>
                        <fieldName>uslog</fieldName>
                        <providers>
                            <timestamp>
                                <fieldName>timestamp</fieldName>
                                <pattern>MM/dd/yyyy'T'HH:mm:ss.SSS'Z'</pattern>
                                <timeZone>UTC</timeZone>
                            </timestamp>
                            <logLevel>
                                <fieldName>log_level</fieldName>
                            </logLevel>
                            <loggerName>
                                <fieldName>logger_name</fieldName>
                            </loggerName>
                            <version>
                                <fieldName>log_version</fieldName>
                            </version>
                            <pattern>
                                <pattern>
                                    {
                                    "service_id":"test",
                                    "service_version":"0.0.1",
                                    "log_type":"msg"
                                    }
                                </pattern>
                            </pattern>
                            <mdc>
                                <fieldName>log_context</fieldName>
                                <includeMdcKeyName>correlationId</includeMdcKeyName>
                            </mdc>
                            <message/>
                            <stackTrace>
                                <fieldName>stackTrace</fieldName>
                                <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
                                    <rootCauseFirst>true</rootCauseFirst>
                                </throwableConverter>
                            </stackTrace>
                            <logstashMarkers/>
                        </providers>
                    </nestedField>
                </providers>
            </encoder>
            <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
                <layout class="com.test.MaskingLogUtil">
                    <maskPattern>\"phone_number\"\s*:\s*\"(.*?)\"</maskPattern>
                    <maskPattern>\"additional_phone_numbers\"\s*:\s*\["(.*?)"]</maskPattern>
                    <maskPattern>\"additional_emails\"\s*:\s*\["(.*?)"]</maskPattern>
                    <maskPattern>\"family_name\"\s*:\s*\"(.*?)\"</maskPattern>
                    <maskPattern>\"given_name\"\s*:\s*\"(.*?)\"</maskPattern>
                    <maskPattern>\"full_name\"\s*:\s*\"(.*?)\"</maskPattern>
                    <maskPattern>\"username\"\s*:\s*\"(.*?)\"</maskPattern>
                    <maskPattern>\"userid\"\s*:\s*\"(.*?)\"</maskPattern>
                    <maskPattern>.*userid\s*:\s(.*)</maskPattern>
                    <maskPattern>(\w+@\w+\.\w+)</maskPattern>
                    <pattern>%-5p [%d{ISO8601,UTC}] [%thread] %c: %m%n%rootException</pattern>
                </layout>
            </encoder>

I am trying to achieve JSON logging with logback while applying my custom encoder to mask some data using xml configuration

0 Answers0