Skip to content

Instantly share code, notes, and snippets.

@sjednac
Last active August 29, 2015 14:09
Show Gist options
  • Save sjednac/ce61baa97c695516ee77 to your computer and use it in GitHub Desktop.
Save sjednac/ce61baa97c695516ee77 to your computer and use it in GitHub Desktop.
Log4j 2.x with MongoDB & SLF4J
scalaVersion := "2.11.3"
mainClass := Some("Log4j2WithMongoAppenderDemo")
unmanagedClasspath in Runtime += file(".")
libraryDependencies ++= Seq(
"org.slf4j" % "slf4j-api" % "1.7.7",
"org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.1",
"org.apache.logging.log4j" % "log4j-core" % "2.1",
"org.apache.logging.log4j" % "log4j-api" % "2.1",
"org.apache.logging.log4j" % "log4j-nosql" % "2.1",
"org.mongodb" % "mongo-java-driver" % "2.12.4"
)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<!--
<Console name="Console" target="SYSTEM_OUT">
<Filters>
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
-->
<NoSql name="NoSql">
<Filters>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<MongoDb databaseName="test" collectionName="sampleLogs" server="localhost"
username="log4j2" password="secret"/>
</NoSql>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="NoSql"/>
</Root>
</Loggers>
</Configuration>
object Log4j2WithMongoAppenderDemo extends App {
val logger = org.slf4j.LoggerFactory.getLogger(Log4j2WithMongoAppenderDemo.getClass)
logger.trace("A trace message")
logger.debug("A debug message")
logger.info("An info message")
logger.warn("A warning message")
logger.error("An error message")
logger.error("An error message with an exception", new Exception("Some serious problem"))
val marker = org.slf4j.MarkerFactory.getMarker("someMarker")
logger.info(marker, "Message marked with {}", marker.getName())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment