■ はじめに
Apache Flink でのロギングを調べていたので そこら辺の周辺の知識を纏めておく
目次
【1】SLF4J 補足:Facade (ファサード) 【2】Hello world 1)sbt 2)サンプル 【3】SLF4J + Log4j 2 1)sbt 2)設定ファイル 3)サンプル 4)出力例 【4】Apache Flink のロギング
【1】SLF4J
* SLF4J = Simple Logging Facade for Java * どのログ出力ライブラリを使ってもいいように 汎用的なログ出力API(ファサード)を提供する
補足:Facade (ファサード)
* 以下の関連記事を参照のこと
ファサードパターン ~ Facade ~
https://dk521123.hatenablog.com/entry/2011/09/04/002622
【2】Hello world
1)sbt
libraryDependencies ++= Seq( "org.slf4j" % "slf4j-api" % "2.0.7", "org.slf4j" % "slf4j-simple" % "2.0.7" )
slf4j-api
https://mvnrepository.com/artifact/org.slf4j/slf4j-api
slf4j-simple
https://mvnrepository.com/artifact/org.slf4j/slf4j-simple
2)サンプル
import org.slf4j.Logger import org.slf4j.LoggerFactory object Main extends App { val logger = LoggerFactory.getLogger("Main") logger.info("Hello World") }
【3】SLF4J + Log4j 2
1)sbt
libraryDependencies ++= Seq( "org.slf4j" % "slf4j-api" % "2.0.7", "org.apache.logging.log4j" % "log4j-core" % "2.20.0", "org.apache.logging.log4j" % "log4j-slf4j2-impl" % "2.20.0" )
2)設定ファイル
* src/main/resources/log4j2.xml として保存する
src/main/resources/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyy/MM/dd HH:mm:ss.SSS} %-5level - %msg%n" /> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console" /> </Root> </Loggers> </Configuration>
3)サンプル
import org.slf4j.Logger import org.slf4j.LoggerFactory object Main extends App { val logger = LoggerFactory.getLogger("Main") logger.info("Hello World! - 1") logger.debug("Hello World!!! - 2") }
4)出力例
2023/06/28 00:07:10.623 INFO - Hello World! - 1
補足:説明
設定ファイルで「<Root level="info">」とあったので 「logger.info("Hello World! - 1")」は、出力されたが 「logger.debug("Hello World!!! - 2")」は、Debugなので出力されなかった
【4】Apache Flink のロギング
https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/advanced/logging/
より抜粋 ~~~~~~~ The logging in Flink uses the SLF4J logging interface. This allows you to use any logging framework that supports SLF4J, without having to modify the Flink source code. By default, Log4j 2 is used as the underlying logging framework. ~~~~~~~
参考文献
https://www.nextdoorwith.info/wp/se/slf4j/
https://zenn.dev/yyamada12/articles/860701683ada37
https://kagamihoge.hatenablog.com/entry/2015/01/20/212230
関連記事
Scala ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/10/193805
Scala ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/12/184331
Scala ~ 基本編 / 文字列 ~
https://dk521123.hatenablog.com/entry/2023/01/07/000000
ファサードパターン ~ Facade ~
https://dk521123.hatenablog.com/entry/2011/09/04/002622
Apache Flink ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/29/000000