26.5 Custom log configuration 
The various logging systems can be activated by including the appropriate libraries on the classpath, and further customized by providing a suitable configuration file in the root of the classpath, or in a location specified by the Spring Environment property logging.config.
You can force Spring Boot to use a particular logging system using the org.springframework.boot.logging.LoggingSystem system property. The value should be the fully-qualified class name of a LoggingSystem implementation. You can also disable Spring Boot’s logging configuration entirely by using a value of none.
![[Note]](Spring Boot Reference Guide_files/note.png)  | 
Note | 
Since logging is initialized before the ApplicationContext is created, it isn’t possible to control logging from @PropertySources in Spring @Configuration files. System properties and the conventional Spring Boot external configuration files work just fine.) | 
Depending on your logging system, the following files will be loaded:
| Logging System | 
Customization | 
| Logback | 
logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy | 
| Log4j2 | 
log4j2-spring.xml or log4j2.xml | 
| JDK (Java Util Logging) | 
logging.properties | 
![[Note]](Spring Boot Reference Guide_files/note.png)  | 
Note | 
When possible we recommend that you use the -spring variants for your logging configuration (for example logback-spring.xml rather than logback.xml). If you use standard configuration locations, Spring cannot completely control log initialization. | 
![[Warning]](Spring Boot Reference Guide_files/warning.png)  | 
Warning | 
| There are known classloading issues with Java Util Logging that cause problems when running from an ‘executable jar’. We recommend that you avoid it if at all possible. | 
To help with the customization some other properties are transferred from the Spring Environment to System properties:
| Spring Environment | 
System Property | 
Comments | 
logging.exception-conversion-word | 
LOG_EXCEPTION_CONVERSION_WORD | 
The conversion word that’s used when logging exceptions. | 
logging.file | 
LOG_FILE | 
Used in default log configuration if defined. | 
logging.path | 
LOG_PATH | 
Used in default log configuration if defined. | 
logging.pattern.console | 
CONSOLE_LOG_PATTERN | 
The log pattern to use on the console (stdout). (Only supported with the default logback setup.) | 
logging.pattern.file | 
FILE_LOG_PATTERN | 
The log pattern to use in a file (if LOG_FILE enabled). (Only supported with the default logback setup.) | 
logging.pattern.level | 
LOG_LEVEL_PATTERN | 
The format to use to render the log level (default %5p). (Only supported with the default logback setup.) | 
PID | 
PID | 
The current process ID (discovered if possible and when not already defined as an OS environment variable). | 
All the logging systems supported can consult System properties when parsing their configuration files. See the default configurations in spring-boot.jar for examples.
![[Tip]](Spring Boot Reference Guide_files/tip.png)  | 
Tip | 
If you want to use a placeholder in a logging property, you should use Spring Boot’s syntax and not the syntax of the underlying framework. Notably, if you’re using Logback, you should use : as the delimiter between a property name and its default value and not :-. | 
![[Tip]](Spring Boot Reference Guide_files/tip.png)  | 
Tip | 
You can add MDC and other ad-hoc content to log lines by overriding only the LOG_LEVEL_PATTERN (or logging.pattern.level with Logback). For example, if you use logging.pattern.level=user:%X{user} %5p then the default log format will contain an MDC entry for "user" if it exists, e.g. |