--- title: Logging subtitle: Configuration and locations of SCM-Manager logging --- SCM-Manager logs information which can be useful, if the system does not behave as expected. The logging behavior depends on your operating system and installation. | Type of Installation | Logging | |----------------------|----------------------------| | Docker | stdout | | RPM | /var/log/scm | | DEB | /var/log/scm | | Unix | $BASEDIR/logs | | Mac OS X | ~/Library/Logs/SCM-Manager | | Windows | $BASEDIR\logs | The location of the **$BASEDIR** can be found [here](../basedirectory/). ## Configuration The logging behaviour of SCM-Manager can be configured via an `config.yml` file or environment variables. Environment variables override the behaviour defined in the `config.yml`. The location of the `config.yml` file depends also on the type of installation. | Type of Installation | Path | |----------------------|------------------------------------------| | Docker | /etc/scm/config.yml | | RPM | /etc/scm/config.yml | | DEB | /etc/scm/config.yml | | Unix | $EXTRACT_PATH/scm-server/conf/config.yml | | Mac OS X | $EXTRACT_PATH/scm-server/conf/config.yml | | Windows | $EXTRACT_PATH/scm-server/conf/config.yml | **$EXTRACT_PATH** is the path were you extract the content of the package. ## Configuration via config.yml file The logging configuration can be set via `config.yml` file. The configuration could look like this: ```yaml log: # The directory where the log files should be stored # This is an optional setting, if it is not set, the default directory will be used logDir: /etc/scm/logs # The log level that should be used globally # Supported log levels are: TRACE, DEBUG, INFO, WARN and ERROR rootLevel: WARN # Whether the log file should be appended with new logs enableFileAppender: true # Whether the standard output should be appended with new logs enableConsoleAppender: true # Specifies which log level should be used for a specific class or package # The "name" needs to be a fully qualified classpath or package path # This setting overrides the root log level, for the specified class or package logger: sonia.scm: DEBUG com.cloudogu.scm: DEBUG ``` ## Configuration via environment variable Every property that can be set inside the `config.yml` can also be set as an environment variable. The following table explains which environment variables are available and how to set them. | Environment Variable | Corresponding config.yml property | Example | |----------------------------------|-----------------------------------|--------------------------------------------------------------| | SCM_LOG_DIR | log.logDir | export SCM_LOG_DIR=/etc/scm/logs | | SCM_LOG_ROOT_LEVEL | log.rootLevel | export SCM_LOG_ROOT_LEVEL=WARN | | SCM_LOG_FILE_APPENDER_ENABLED | log.enableFileAppender | export SCM_LOG_FILE_APPENDER_ENABLED=true | | SCM_LOG_CONSOLE_APPENDER_ENABLED | log.enableConsoleAppender | export SCM_LOG_CONSOLE_APPENDER_ENABLED=true | | SCM_LOG_LOGGER | log.logger | export SCM_LOG_LOGGER=sonia.scm:DEBUG,com.cloudogu.scm:DEBUG | ## Logback If the configuration properties are not sufficient, then you may configure Logback itself. Logback is the library that the SCM-Manager uses for its logging. To enable a custom Logback configuration, you have to start the SCM-Manager with the following system property `-Dlogback.configurationFile=logging.xml`. If this property is set, then the configuration inside the `config.yml` and environment variables will be ignored. Then depending on the type of installation you use the `logging.xml` file is expected at the following directories: | Type of Installation | Path | |----------------------|-------------------------------------------| | Docker | /etc/scm/logging.xml | | RPM | /etc/scm/logging.xml | | DEB | /etc/scm/logging.xml | | Unix | $EXTRACT_PATH/scm-server/conf/logging.xml | | Mac OS X | $EXTRACT_PATH/scm-server/conf/logging.xml | | Windows | $EXTRACT_PATH/scm-server/conf/logging.xml | **$EXTRACT_PATH** is the path were you extract the content of the package. **Example** ```xml /var/log/scm/scm-manager.log /var/log/scm/scm-manager-%i.log 1 10 10MB true %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-10X{transaction_id}] %-5level %logger - %msg%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-10X{transaction_id}] %-5level %logger - %msg%n ```