[ 
https://issues.apache.org/jira/browse/JAMES-3399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

René Cordier closed JAMES-3399.
-------------------------------
    Fix Version/s: 3.6.0
       Resolution: Done

> Document structured logging with FluentBit
> ------------------------------------------
>
>                 Key: JAMES-3399
>                 URL: https://issues.apache.org/jira/browse/JAMES-3399
>             Project: James Server
>          Issue Type: Improvement
>          Components: Documentation, guice
>    Affects Versions: master
>            Reporter: Benoit Tellier
>            Priority: Major
>             Fix For: 3.6.0
>
>
> == Context
> As any application, James outputs logs.
> The team uses the SLF4J logging facade, along with the logback-classic log 
> producer library.
> The team had been setting up contextual logging: the context of the execution 
> is recorded through the use of the 
> MDC (Mapped Diagnostic Context) on the behalf of the developper. Once the 
> context set up, all logging action performed in the scope will implicilty 
> include the MDC context.
> Contextual logging is beneficial as it enable dispaying efficiently request 
> parameters, tracking users, request ids and so on. It greatly enhence the 
> debugging experience.
> Historically, we relyed on a custom logback appender to output logs directly 
> to ElasticSearch, in a structured fashion, that could be directly accessed 
> via Kibana.
> The historical stack had been proven brittle:
>  - James needs to be pushing logs, eventual consummiung some of its resources
>  - Being push based, upon bolks or temporary ElasticSearch failures, some 
> logs are lost.
> This conversation was marked as resolved by chibenwa
>  - Logs are duplicated, both to the standard output and ElasticSearch
>  - Changes to the logging stack requires a James restart, that could cause 
> inconsistency and harm availability.
> This conversation was marked as resolved by chibenwa
> == Desirable propoerties of the logging stack
> We see the following properties as desirable:
>  - Having structured logging
>  - Being pull based
>  - Uncorrelating the logging stack from the James configuration
> == Definition of Done
> Document how to rely on FluentD to collect James logs. The James logging 
> configuration can be simplified to log all logs to the standard output.
> Document how to emmit logs in a JSON format, in order for fluentD and Kibana 
> to allow preserving the structured logging experience.
> == Consequences
> We expect our logging stack to be more resilient, while keeping structured 
> logging.
> https://github.com/linagora/logback-elasticsearch-appender project can be 
> deprecated - if desired.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to