Skip to content

Instantly share code, notes, and snippets.

@geowarin
Created November 23, 2014 11:50
Show Gist options
  • Save geowarin/55d38926938b1a046de6 to your computer and use it in GitHub Desktop.
Save geowarin/55d38926938b1a046de6 to your computer and use it in GitHub Desktop.
How to redirect command output to log4j in a groovy script
#!/usr/bin/env groovy
@Grapes(
@Grab('log4j:log4j:1.2.17')
)
import org.apache.log4j.Level
import org.apache.log4j.Logger
def redirectLog = { Level level ->
return { String s ->
if (s.trim())
Logger.rootLogger.log(level, s)
} as Appendable
}
Logger.rootLogger.level = Level.DEBUG
// Optional : configure appenders
//Logger.rootLogger.removeAllAppenders()
//Logger.rootLogger.addAppender new ConsoleAppender([layout: new PatternLayout('%m%n'), writer: System.out.newWriter()])
//Logger.rootLogger.addAppender new FileAppender(new TTCCLayout(), 'myscript.log')
Process proc = ['ls', '-l'].execute()
proc.waitForProcessOutput(redirectLog(Level.INFO), redirectLog(Level.ERROR))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment