概要
logを取るためにslf4j + logbackを用いるが、xmlを利用せずにスクリプトのみでファイル出力先の設定を済ませたい。
以下の解答が見つかったので、メモ。
利用
ついでにimportを補足すると、以下のような形になる(一度動作は確認したけど、最終的な確認してないので微調整は必要かもしれない)。
import ch.qos.logback.classic.encoder.PatternLayoutEncoder import ch.qos.logback.classic.spi.ILoggingEvent import ch.qos.logback.core.FileAppender import org.slf4j.Logger import org.slf4j.LoggerFactory LoggerContext lc = LoggerFactory.getILoggerFactory() PatternLayoutEncoder ple = new PatternLayoutEncoder() ple.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n") ple.setContext(lc) ple.start() FileAppender<ILoggingEvent> fileAppender = new FileAppender<>() String logFile = "new.log" fileAppender.setFile(logFile) fileAppender.setEncoder(ple) fileAppender.setContext(lc) fileAppender.start() Logger log = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME) log.addAppender(fileAppender) log.info("message")
jarファイルを手動セットする場合、以下は少なくとも必要かな?
仕込む場所
ネット上の記事だと以下が参考になりそうだけど、ちょっとした動作記録なら好きに入れれば良いか。