Last active
January 15, 2016 16:24
-
-
Save matterche/281c548da2ccd4992568 to your computer and use it in GitHub Desktop.
Redirect System.out and System.err to Play Framework logger
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<configuration scan="true" scanPeriod="30 seconds"> | |
<appender name="sysout" class="ch.qos.logback.core.rolling.RollingFileAppender"> | |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | |
<fileNamePattern>/e42/opt/apps/maw/log/sysout.%d{yyyy-MM-dd}.log</fileNamePattern> | |
<maxHistory>3</maxHistory> | |
</rollingPolicy> | |
<encoder> | |
<pattern>%msg</pattern> | |
</encoder> | |
</appender> | |
<logger name="globals.StdOutErrLogger" level="INFO" additivity="false"> | |
<appender-ref ref="sysout"/> | |
</logger> | |
</configuration> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package globals | |
import java.io.PrintStream | |
import play.api.Logger | |
object StdOutErrLogger { | |
val logger = Logger(this.getClass) | |
def redirectSystemOutAndErrToLog() = { | |
try { | |
System.setOut(createLoggingProxy(System.out)) | |
System.setErr(createLoggingProxy(System.err)) | |
} catch { | |
case se: SecurityException => Logger.error("Unable to redirect stdout and stderr to logfile", se) | |
} | |
} | |
def createLoggingProxy(originalPrintStream: PrintStream): PrintStream = { | |
new PrintStream(originalPrintStream) { | |
override def print(string: String) { | |
originalPrintStream.print(string) | |
logger.info(string) | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment