> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# logback-spring-file.xml

## File purpose

The **logback-spring-file.xml** file defines the logback configuration for the MR application in production.

## File location

The file is located in the folder **mr-application\src\main\resources**.

## File values

<Note>
  The **logback-spring-file.xml** file uses Logback configuration. See the official Logback documentation for details about Logback concepts: \<[https://logback.qos.ch/documentation.html](https://logback.qos.ch/documentation.html)>
</Note>

The file has the following attributes:

<table><thead><tr><th>Element</th><th>Attribute</th><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>\<configuration></td><td>debug</td><td><code>true</code></td><td>Flag used to enable/disable Logback debug mode</td></tr><tr><td>\<shutdownHook></td><td>class</td><td><code>ch.qos.logback.core.hook.DelayingShutdownHook</code></td><td>Install a JVM shutdown hook to shut down logback and release associated resources.</td></tr><tr><td>\<jmxConfigurator/></td><td /><td /><td>Allows the configuration of logback via JMX</td></tr><tr><td>\<conversionRule></td><td>conversionWord</td><td><code>thread</code></td><td>Configuration of a custom converter to retrieve the current thread generating the log</td></tr><tr><td /><td>converterClass</td><td><code>com.activeviam.apm.logging.impl.APMThreadConverter</code></td><td>Configuration of a custom converter to retrieve the current thread generating the log</td></tr><tr><td>\<conversionRule></td><td>conversionWord</td><td><code>user</code></td><td>Configuration of a custom converter to retrieve the current user generating the log</td></tr><tr><td /><td>converterClass</td><td><code>com.activeviam.apm.logging.impl.APMUserConverter</code></td><td /></tr><tr><td>\<conversionRule></td><td>conversionWord</td><td><code>instance</code></td><td>Configuration of custom converter to retrieve the instance name of the application</td></tr><tr><td /><td>converterClass</td><td><code>com.activeviam.apm.logging.impl.APMInstanceConverter</code></td><td /></tr><tr><td>\<timestamp></td><td>key</td><td><code>startupDateTime</code></td><td>Indicates that a timestamp will be generated at configuration parsing time</td></tr><tr><td /><td>datePattern</td><td><code>yyyyMMdd-HHmmss</code></td><td>Pattern of the generated timestamp</td></tr><tr><td>\<property></td><td>name</td><td><code>logDirRootPath</code></td><td>Name of the property used to define the folder in which the logs will be printed out</td></tr><tr><td /><td>value</td><td><code>\$\{LOG\_PATH:-.}/logs}</code></td><td>Value of that property</td></tr><tr><td>\<property></td><td>name</td><td><code>logFileNamePrefix</code></td><td>Name of property used to define the prefix of the log files</td></tr><tr><td /><td>value</td><td><code>mr-application\_\$\{startupDateTime}\_%i-startup\_</code></td><td>Value of that property</td></tr><tr><td>\<property></td><td>name</td><td><code>logFileNameRollingTag</code></td><td>Name of the property used to define the tag used in the rolled logs</td></tr><tr><td /><td>value</td><td><code>%d\{yyyyMMdd}-period</code></td><td>Value of that property</td></tr><tr><td>\<property></td><td>name</td><td><code>logFileNameExt</code></td><td>Name of the property used to define the exension of the generated log files</td></tr><tr><td /><td>value</td><td><code>.log.zip</code></td><td>Value of that property</td></tr><tr><td>\<property></td><td>name</td><td><code>logFileRollingMaxHistory</code></td><td>Name of the property used to define the maximum number of rolled-over files to keep</td></tr><tr><td /><td>value</td><td><code>30</code></td><td>Value of that property</td></tr><tr><td>\<property></td><td>name</td><td><code>logFileRollingMaxFileSize</code></td><td>Name of the property used to define the maximum size of a log file</td></tr><tr><td /><td>value</td><td><code>200GB</code></td><td>Value of that property</td></tr><tr><td>\<property></td><td>name</td><td><code>logPattern</code></td><td>Name of the property used to define the layout of the logs</td></tr><tr><td /><td>value</td><td><code>%n%date\{yyyy-MM-dd HH:mm:ss.SSS z} %relative \[%thread] %logger%n%level: %message%n%throwable</code></td><td>Value of that property</td></tr><tr><td>\<appender></td><td>name</td><td><code>JSON</code></td><td>Appender used to output JSON logs</td></tr><tr><td /><td>class</td><td><code>ch.qos.logback.core.rolling.RollingFileAppender</code></td><td>Rolling file appender</td></tr><tr><td>\<file></td><td /><td><code>\$\{custom.json.log.dir}/activepivot.log</code></td><td>The name of the file to write to</td></tr><tr><td>\<rollingPolicy></td><td>class</td><td><code>ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy</code></td><td>Rolls over files primarily by date, but also limits the size of each log file</td></tr><tr><td>\<fileNamePattern></td><td /><td><code>\$\{logDirRootPath}/\$\{logFileNamePrefix}main\_\$\{logFileNameRollingTag}\$\{logFileNameExt}</code></td><td>Name of the rolled-over log files</td></tr><tr><td>\<maxHistory></td><td /><td><code>\$\{logFileRollingMaxHistory}</code></td><td>Controls the maximum number of rolled-over files to keep</td></tr><tr><td>\<maxFileSize></td><td /><td><code>\$\{logFileRollingMaxFileSize}</code></td><td>Controls the maximum size of rolled-over files</td></tr><tr><td>\<cleanHistoryOnStart></td><td /><td><code>true</code></td><td>If set to true, roll over removal will be executed on appender start-up</td></tr><tr><td>\<encoder></td><td>class</td><td><code>net.logstash.logback.encoder.LogstashEncoder</code></td><td>The encoder class used to transform an event into an output stream</td></tr><tr><td>\<timestampPattern></td><td /><td><code>\[UNIX\_TIMESTAMP\_AS\_NUMBER]</code></td><td>Writes the timestamp value as a numeric unix timestamp</td></tr><tr><td>\<excludeMdcKeyName></td><td /><td><code>user\_name</code></td><td>Excludes that field from the Mapped Diagnostic Context (MDC)</td></tr><tr><td>\<excludeMdcKeyName></td><td /><td><code>thread\_name</code></td><td>Excludes that field from the Mapped Diagnostic Context (MDC)</td></tr><tr><td>\<fieldNames></td><td /><td /><td /></tr><tr><td>\<timestamp></td><td /><td><code>log\_timestamp</code></td><td>Defines the name of the timestamp field</td></tr><tr><td>\<thread></td><td /><td><code>\[ignore]</code></td><td>Prevents the thread field from being output by setting the field name to \[ignore]</td></tr><tr><td>\<provider></td><td>class</td><td><code>net.logstash.logback.composite.loggingevent.LoggingEventPatternJsonProvider</code></td><td>Class that provides support for JSON outputs</td></tr><tr><td>\<pattern></td><td /><td><code>\{</code><br /><code>"user\_name": "%user",</code><br /><code>"thread\_name": "%thread",</code><br /><code>"instance\_name": "%instance"</code><br /><code>}</code></td><td>Adds that JSON pattern to the logs</td></tr><tr><td>\<appender></td><td>name</td><td><code>MAIN</code></td><td>Appender used to output main logs</td></tr><tr><td>\<class></td><td>class</td><td><code>ch.qos.logback.core.rolling.RollingFileAppender</code></td><td>Rolling file appender</td></tr><tr><td>\<rollingPolicy></td><td>class</td><td><code>ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy</code></td><td>Rolls over files primarily by date, but also limits the size of each log file</td></tr><tr><td>\<fileNamePattern></td><td /><td><code>\$\{logDirRootPath}/\$\{logFileNamePrefix}main\_\$\{logFileNameRollingTag}\$\{logFileNameExt}</code></td><td>Name of the rolled-over log files</td></tr><tr><td>\<maxHistory></td><td /><td><code>\$\{logFileRollingMaxHistory}</code></td><td>Controls the maximum number of rolled-over files to keep</td></tr><tr><td>\<maxFileSize></td><td /><td><code>\$\{logFileRollingMaxFileSize}</code></td><td>Controls the maximum size of rolled-over files</td></tr><tr><td>\<encoder></td><td /><td /><td /></tr><tr><td>\<pattern></td><td /><td>\$\{logPattern}</td><td>Pattern used for the log output</td></tr><tr><td>\<appender></td><td>name</td><td><code>QUERIES</code></td><td>Appender used to output logs specific to queries</td></tr><tr><td>\<class></td><td>class</td><td><code>ch.qos.logback.core.rolling.RollingFileAppender</code></td><td>Rolling file appender</td></tr><tr><td>\<rollingPolicy></td><td>class</td><td><code>ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy</code></td><td>Rolls over files primarily by date, but also limits the size of each log file</td></tr><tr><td>\<fileNamePattern></td><td /><td><code>\$\{logDirRootPath}/\$\{logFileNamePrefix}queries\_\$\{logFileNameRollingTag}\$\{logFileNameExt}</code></td><td>Name of the rolled-over log files</td></tr><tr><td>\<maxHistory></td><td /><td><code>\$\{logFileRollingMaxHistory}</code></td><td>Controls the maximum number of rolled-over files to keep</td></tr><tr><td>\<maxFileSize></td><td /><td><code>\$\{logFileRollingMaxFileSize}</code></td><td>Controls the maximum size of rolled-over files</td></tr><tr><td>\<encoder></td><td /><td /><td /></tr><tr><td>\<pattern></td><td /><td>\$\{logPattern}</td><td>Pattern used for the log output</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.biz.pivot.monitoring.impl.XmlaMonitorListener</code></td><td>The logger for the class used to output the current time and size of the XMLA response</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.biz.pivot.webservices</code></td><td>The logger for the core Atoti Server webservices package</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.biz.pivot.streaming</code></td><td>The logger for the core Atoti Server streaming package</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.tech.streaming</code></td><td>Logging for Atoti Server streams (stateful components publishing events to a publisher)</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.qfs.pivot.rest.discovery</code></td><td>The logger for the Atoti Server discovery service</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.qfs.pivot.rest.query</code></td><td>The logger for the Atoti Server queries service</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.qfs.pivot.websocket</code></td><td>The logger for Atoti Server websockets</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.pivot.mdx</code></td><td>The logger for the MDX engine</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.biz.pivot.impl.TimerActivePivotQueryExecutor</code></td><td>A simple query executor that times each query that goes through it, and logs the timings at the Level.INFO</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.biz.pivot.impl.ActivePivotVersion</code></td><td>The logger for the Atoti Server version instance</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.biz.pivot.query.aggregates</code></td><td>The logger for the retrieval of aggregated values</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>com.quartetfs.biz.pivot.postprocessing</code></td><td>The logger for Atoti Server post-processors</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>org.springframework.http</code></td><td>The logger for the Spring package that contains a basic abstraction over client/server-side HTTP.</td></tr><tr><td /><td>level</td><td><code>INFO</code></td><td>The level of printed out logs for that logger</td></tr><tr><td>\<logger></td><td>name</td><td><code>org.springframework.remoting</code></td><td>The logger for the exception hierarchy for Spring’s remoting infrastructure, independent of any specific remote method invocation system.</td></tr><tr><td>\<root></td><td>level</td><td><code>INFO</code></td><td>Root logger level</td></tr><tr><td>\<appender-ref></td><td>ref</td><td><code>STDOUT</code></td><td>The name of the Logback appender used by the root logger</td></tr><tr><td>\<contextListener></td><td>class</td><td><code>ch.qos.logback.classic.jul.LevelChangePropagator</code></td><td>Implementation of Logback context listener</td></tr><tr><td>\<resetJUL></td><td /><td>true</td><td>Flag used to reset all previous level configurations of all j.u.l. loggers</td></tr></tbody></table>
