Skip to content

Commit

Permalink
feat: json logger
Browse files Browse the repository at this point in the history
Fix #853
  • Loading branch information
ptitFicus committed Nov 19, 2024
1 parent bd06355 commit 3e91866
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 0 deletions.
1 change: 1 addition & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ libraryDependencies += "com.auth0" % "java-jwt" %
libraryDependencies += "com.typesafe.akka" %% "akka-http" % "10.2.10"
libraryDependencies += "com.github.jknack" % "handlebars" % "4.4.0"
libraryDependencies += "com.github.jknack" % "handlebars-jackson" % "4.4.0" excludeAll (excludesJackson: _*)
libraryDependencies += "net.logstash.logback" % "logstash-logback-encoder" % "8.0" excludeAll (excludesJackson: _*)

libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test
libraryDependencies += "org.scalatest" %% "scalatest-flatspec" % "3.2.12" % "test"
Expand Down
35 changes: 35 additions & 0 deletions conf/json-logger.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<!-- https://www.playframework.com/documentation/latest/SettingsLogger -->
<configuration>

<conversionRule conversionWord="coloredLevel" converterClass="play.api.libs.logback.ColoredLevel" />

<logger name="jsonEncoderLogger" level="TRACE">
<appender-ref ref="jsonEncoder" />
</logger>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home:-.}/logs/application.log</file>
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</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="INFO" />
<logger name="izanami-wasm" level="WARN" />

<root level="INFO">
<!--<appender-ref ref="ASYNCFILE" />-->
<appender-ref ref="ASYNCSTDOUT" />
</root>

</configuration>
6 changes: 6 additions & 0 deletions manual/docs/04-guides/12-configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -140,3 +140,9 @@ With configurable values
| initial delay (in seconds) | app.webhooks.retry.intial-delay | IZANAMI_WEBHOOK_RETRY_INITIAL_DELAY |
| max delay (in seconds) | app.webhooks.retry.max-delay | IZANAMI_WEBHOOK_RETRY_MAX_DELAY |
| multiplier | app.webhooks.retry.multiplier | IZANAMI_WEBHOOK_RETRY_MULTIPLIER |

### Logging

To change logger, refer to [play documentation page](https://www.playframework.com/documentation/3.0.x/SettingsLogger).

Izanami embed a json logger by default, therefore to have log at logstash json format, you can use the `-Dlogger.resource=json-logger.xml` argument.

0 comments on commit 3e91866

Please sign in to comment.