logback.xml
directory path of logback.xml is src/main/resources/logback.xml
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.libs.logback.ColoredLevel" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home:-.}/logs/apploger.log</file>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
<timestampFormat>yyyy-MM-dd'T'HH:mm:ss.SSSX</timestampFormat>
<timestampFormatTimezoneId>Etc/UTC</timestampFormatTimezoneId>
<jsonFormatter class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter">
<prettyPrint>false</prettyPrint>
</jsonFormatter>
<appendLineSeparator>true</appendLineSeparator>
</layout>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
<timestampFormat>yyyy-MM-dd'T'HH:mm:ss.SSSX</timestampFormat>
<timestampFormatTimezoneId>Etc/UTC</timestampFormatTimezoneId>
<jsonFormatter class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter">
<prettyPrint>false</prettyPrint>
</jsonFormatter>
<appendLineSeparator>true</appendLineSeparator>
</layout>
</encoder>
</appender>
<appender name="ASYNCFILE" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="FILE" />
</appender>
<appender name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STDOUT" />
</appender>
<logger name="play" level="INFO" />
<logger name="application" level="DEBUG" />
<!-- Off these ones as they are annoying, and anyway we manage configuration ourselves -->
<logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" />
<logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF" />
<logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF" />
<logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" />
<root level="INFO">
<appender-ref ref="ASYNCFILE" />
<appender-ref ref="ASYNCSTDOUT" />
</root>
</configuration>
built.sbt
javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-Xlint")
lazy val root = (project in file(".")).
settings(
name := "apploggerrr",
version := "test",
// version := "poly_quote",
organization := "com.abc",
scalaVersion := "2.12.12",
trapExit := false,
retrieveManaged := true,
libraryDependencies +="com.typesafe.play" %% "play-ws" % "2.8.7",
libraryDependencies += "com.lihaoyi" %% "requests" % "0.6.8",
libraryDependencies +=
("org.json4s" %% "json4s-jackson" % "3.6.7" ).excludeAll(
ExclusionRule(organization = "com.fasterxml.jackson.core")
),
libraryDependencies += "software.amazon.awssdk" % "dynamodb" % "2.16.64",
libraryDependencies += "org.scanamo" %% "scanamo" % "1.0.0-M15",
libraryDependencies += "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.12.2",
libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value,
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.1.2",
libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.1.2",
libraryDependencies += "com.audienceproject" %% "spark-dynamodb" % "1.1.2",
libraryDependencies += "org.elasticsearch" %% "elasticsearch-spark-30" % "7.13.2",
libraryDependencies += "org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
libraryDependencies += "org.apache.httpcomponents" % "httpclient" % "4.5.11",
libraryDependencies += "org.postgresql" % "postgresql" % "42.2.18",
libraryDependencies += "com.typesafe" % "config" % "1.4.0",
libraryDependencies += "com.amazonaws" % "aws-java-sdk-dynamodb" % "1.12.22" ,
libraryDependencies += "com.github.mjakubowski84" %% "parquet4s-core" % "1.9.2" ,
libraryDependencies += "com.google.auth" % "google-auth-library-oauth2-http" % "0.26.0",
libraryDependencies += "com.google.firebase" % "firebase-admin" % "6.8.1",
libraryDependencies += "com.typesafe.slick" %% "slick" % "3.3.3",
libraryDependencies += "com.typesafe.slick" %% "slick-codegen" % "3.3.3",
libraryDependencies += "org.slf4j" % "slf4j-simple" % "2.0.0",
libraryDependencies += "redis.clients" % "jedis" % "3.6.3",
libraryDependencies += "com.lihaoyi" %% "ujson" % "1.3.8",
libraryDependencies += "org.java-websocket" % "Java-WebSocket" % "1.5.2",
libraryDependencies += "com.sksamuel.elastic4s" % "elastic4s-client-esjava_2.12" % "8.4.1",
libraryDependencies += "com.sksamuel.elastic4s" %% "elastic4s-core" % "8.4.1",
libraryDependencies += "com.amazonaws" % "amazon-sqs-java-messaging-lib" % "1.0.8",
libraryDependencies += "org.scalaj" % "scalaj-http_2.11" % "2.3.0",
libraryDependencies += "com.lihaoyi" %% "upickle" % "1.4.3",
libraryDependencies += "com.google.code.gson" % "gson" % "1.7.1" ,
libraryDependencies +="com.newrelic.agent.java" % "newrelic-api" % "7.7.0",
libraryDependencies += "org.apache.hadoop" % "hadoop-aws" % "3.2.1",
libraryDependencies +="ch.qos.logback" % "logback-classic" % "1.2.3",
libraryDependencies +="ch.qos.logback.contrib" % "logback-jackson" % "0.1.5",
libraryDependencies +="ch.qos.logback.contrib" % "logback-json-classic" % "0.1.5",
libraryDependencies += "com.sksamuel.elastic4s" %% "elastic4s-jackson" % "6.7.8",
libraryDependencies += "ch.qos.logback" % "logback-core" % "1.2.3",
libraryDependencies += "org.slf4j" % "slf4j-api" % "1.7.30",
)
Its able to create a applogger.log file using this configuration, but its not writing any logs to it. The configuration is producing an empty file, indicating that logback.xml is being picked up, but I can't figure out why logs aren't being written to that log file.
With one of my other projects, this exact configuration is operational, but I am unable to identify the problem in this one.
I've tried practically all of the answers to this question's variations that are listed on stackoverflow but none of them worked.