Search code examples
playframeworkslf4jflume

How can I change logback to log4j 2 in play framework 2.4?


In a project I want to use Flume to collect the logs from several Play Framework 2.4 servers. Logback doesn't provide the Flume Appender but log4j 2 did it. see http://logging.apache.org/log4j/2.x/manual/appenders.html#FlumeAppender.

So how can I employ log4j 2 in play framework 2.4?


Solution

  • One option is to configure Logback to write to Syslog. Then you can use Flume to read from syslog.

    You can use this configuration for writing to syslog on local machine at port 11111.

    <configuration>
    
      <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost>localhost</syslogHost>
        < port >11111</port >
        <suffixPattern>[%thread] %logger %msg</suffixPattern>
      </appender>
    
      <root level="DEBUG">
        <appender-ref ref="SYSLOG" />
      </root>
    </configuration>
    

    Then configure Flume to listen on syslog port using details from this blog post