Spring Boot Logging using Logback

  • Just place the logback.xml file in the classpath and it will start working

logback.xml (place in resource folder i.e class path)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<include resource="org/springframework/boot/logging/logback/defaults.xml" />
	<property name="LOG_FILE" value="logs/app.log" />

	<appender name="FILE-ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_FILE}</file>

		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>logs/archived/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<!-- each archived file, size max 5KB -->
			<maxFileSize>5KB</maxFileSize>
			<!-- total size of all archive files, if total size > 20KB, it will delete 	old archived file -->
			<totalSizeCap>20KB</totalSizeCap>
			<!-- 60 days to keep -->
			<maxHistory>60</maxHistory>
		</rollingPolicy>

		<encoder>
			<pattern>%d %p %c{1.} [%t] %m%n</pattern>
		</encoder>
	</appender>

	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
		<layout class="ch.qos.logback.classic.PatternLayout">
			<Pattern>
				%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
			</Pattern>
		</layout>
	</appender>


	<logger name="com.dailycodebuffer" level="trace" additivity="false">
		<appender-ref ref="FILE-ROLLING" />
	</logger>

	<root level="error">
		<appender-ref ref="FILE-ROLLING" />
	</root>

	<logger name="com.dailycodebuffer" level="debug" additivity="false">
		<appender-ref ref="CONSOLE" />
	</logger>
	<root level="error">
		<appender-ref ref="CONSOLE" />
	</root>

</configuration>

application.properties

server.port=9191
logging.level.org.springframework=DEBUG
#logging.level.SpringSecurity=DEBUG
#logging.level.root=INFO

logging.pattern.console=%d [%level] %c{1.} [%t] %m%n
logging.file = appLog.log
logging.pattern.file=%d [%level] %c{1.} [%t] %m%n

#[%d] date [%level] i.e info trace etc [%c] = class name [%t] = thread  [%m] = message [%n] new line   

Reference :

Leave a Comment