2

I want the console logging to turn off and file logging to turn on. Is this possible in logback?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- Send debug messages to System.out -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>OFF</level>
        </filter>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- Send debug messages to a file at "c:/jcg.log" -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/home/dev-01/Documents/jcg.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <FileNamePattern>/home/dev-01/Documents/jcg-%i.log</FileNamePattern>
            <MinIndex>1</MinIndex>
            <MaxIndex>10</MaxIndex>
        </rollingPolicy>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>100MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <!-- By default, the level of the root level is set to DEBUG -->
    <root level="INFO">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

I am open to use another logging libraries if this is not possible in logback.

richersoon
  • 4,682
  • 13
  • 44
  • 74

2 Answers2

3

Delete the appender-ref STDOUT reference

<root level="INFO">
    <appender-ref ref="FILE" />
</root>
tib
  • 195
  • 1
  • 7
1

I don't know logback but you might set logging level to OFF for the console logger.

Like this (removing STDOUT appender from root logger) :

<logger name="consoleLogger" level="OFF">
  <appender-ref ref="STDOUT" />
</logger>

<root level="INFO">
  <appender-ref ref="FILE" />
</root>

See : Can I disable an appender in logback?

EDIT : added XML sample

Community
  • 1
  • 1
Gaël J
  • 11,274
  • 4
  • 17
  • 32