scala
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.Logger
object LogExample {
val logger: Logger = LogManager.getLogger(getClass.getName)
def main(args: Array[String]): Unit = {
}
}
scala
import org.apache.logging.log4j.Level
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.core.Filter.Result
import org.apache.logging.log4j.core.LogEvent
import org.apache.logging.log4j.core.LoggerContext
import org.apache.logging.log4j.core.config.Configurator
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory
object LogFilterExample {
val logger: Logger = LogManager.getLogger(getClass.getName)
def main(args: Array[String]): Unit = {
val context: LoggerContext = Configurator.initialize(null, "log4j2.xml").getContext.asInstanceOf[LoggerContext]
val customFilter = new org.apache.logging.log4j.core.Filter {
override def filter(event: LogEvent): Result = {
if (event.getLevel == Level.INFO) {
Result.ACCEPT
} else {
Result.DENY
}
}
override def onStart(): Unit = {}
override def onEnd(): Unit = {}
}
val configBuilder = ConfigurationBuilderFactory.newConfigurationBuilder()
val rootLoggerConfig = configBuilder.newRootLogger(org.apache.logging.log4j.Level.ALL)
rootLoggerConfig.add(customFilter)
context.getConfiguration.replace(rootLoggerConfig.build())
logger.trace("This is a trace message")
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warn("This is a warning message")
logger.error("This is an error message")
logger.fatal("This is a fatal message")
}
}