In my application, I would like to register some messages coming from my own code in a certain way compared to all the other messages that are being logged. However, I am not sure how I can avoid them from automatically entering the root log logack.
Using this configuration below, I would like to use the following code (scala) so that I can log specific messages only for this logger.
val logger: Logger = LoggerFactory.getLogger("data-logger")
However, in the configuration below, these messages are logged twice, i.e. they are also registered by the root registrar. How can i avoid this? Should I artificially use a different level of logging to do something similar using logging?
<configuration> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/activity.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>activity.%i.log.zip</fileNamePattern> <minIndex>1</minIndex> <maxIndex>10</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>10MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%msg%n</pattern> </encoder> </appender> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%msg%n</pattern> </encoder> </appender> <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <appender-ref ref="FILE" /> </appender> <root level="info"> <appender-ref ref="STDOUT" /> <appender-ref ref="ASYNC" /> </root> <logger name="data-logger" level="info"> <appender-ref ref="STDOUT" /> <appender-ref ref="ASYNC" /> </logger> </configuration>
java scala logging logback
matanster
source share