Cześć,
Mam taki problem w którym zupełnie nie wiem czemu zapis logu do liku nie działa w spring boot przy użyciu log4j2.
Problem jest taki, że stworzyłem 2 Logger-y, jeden w klasie startującej aplikację a drugi w kontrolerze. Oba wypisuje na konsolę log, ale do pliku z logami zapisuj się tylko log ze startu aplikacji.
Proszę o pomoc w rozwiązaniu tego problemu. Poniżej plik log4j2.properties:
name = PropertiesConfig
property.filename = logs/example.log
appenders = console, rolling
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{dd.MM.yyyy HH:mm:ss,SSS} %-5p %c{1}:%L - %m%n
appender.rolling.type = RollingFile
appender.rolling.name = roll
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = logs/history/%d{MM-dd-yy-HH-mm-ss}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{dd.MM.yyyy HH:mm:ss,SSS} %-5p %c{1}:%L - %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 2
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 5
loggers = rolling
logger.rolling.name = org.apache.logging.log4j.core.appender.rolling
logger.rolling.level = all
logger.rolling.additivity = true
logger.rolling.appenderRefs = rolling
logger.rolling.appenderRef.rolling.ref = roll
rootLogger.level = all
rootLogger.appenderRefs = rolling, stdout
rootLogger.appenderRef.rolling.ref = roll
rootLogger.appenderRef.stdout.ref = STDOUT
UPDATE:
Wydaj mi się, że problem leży po stornie konfiguracji gradle, gdyż z tego co zauważyłem na konsolę jest wypisywany log w innym formacie niż jest zdefiniowane w log4j2.properties
Mój build.gradle:
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'org.springframework.boot'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'net.ltgt.apt'
apply plugin: 'net.ltgt.apt-idea'
buildscript {
repositories {
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${spring_boot_gradle_plugin}")
classpath("gradle.plugin.com.querydsl.plugin:querydsl-plugin:${querydsl_plugin}")
classpath("net.ltgt.gradle:gradle-apt-plugin:${gradle_apt_plugin}")
}
}
repositories {
mavenCentral()
}
configurations {
all.collect { configuration ->
configuration.exclude module: 'spring-boot-starter-logging'
}
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-data-jpa:${spring_boot_version}")
compile("org.springframework.boot:spring-boot-starter-web:${spring_boot_version}")
compile("org.springframework.boot:spring-boot-devtools:${spring_boot_version}")
compile 'org.apache.logging.log4j:log4j-api:2.11.1'
compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.11.1'
compile("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcat_embed_jasper}")
compile("javax.servlet:jstl:${jstl}")
compile("mysql:mysql-connector-java:${mysql_connector}")
compile("javax.xml.bind:jaxb-api:${jaxb_api}")
compile("org.glassfish.jaxb:jaxb-runtime:${jaxb_runtime}")
compile("com.querydsl:querydsl-jpa:${querydls_version}")
annotationProcessor (
"com.querydsl:querydsl-apt:${querydls_version}:jpa",
"org.hibernate.javax.persistence:hibernate-jpa-2.1-api:${hibernate_jpa}",
"javax.annotation:javax.annotation-api:${annotation_api}"
)
testCompile("org.codehaus.groovy:groovy-all:${groovy_all}")
testCompile("org.spockframework:spock-core:${spock}")
}