今天在springboot項目中替換log4j2日志的時候遇見的問題,閑話不多說。
錯誤日志
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
Logging system failed to initialize using configuration from 'classpath:log4j2-dev.xml' java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.core.joran.spi.Interpreter @3 : 16 - no applicable action for [appenders], current ElementPath is [[configuration][appenders]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @4 : 67 - no applicable action for [Console], current ElementPath is [[configuration][appenders][Console]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @5 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][Console][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @10 : 119 - no applicable action for [RollingFile], current ElementPath is [[configuration][appenders][RollingFile]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @11 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][RollingFile][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @12 : 23 - no applicable action for [Policies], current ElementPath is [[configuration][appenders][RollingFile][Policies]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @13 : 45 - no applicable action for [TimeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][TimeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @14 : 57 - no applicable action for [SizeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][SizeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @16 : 48 - no applicable action for [DefaultRolloverStrategy], current ElementPath is [[configuration][appenders][RollingFile][DefaultRolloverStrategy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @21 : 79 - no applicable action for [RollingFile], current ElementPath is [[configuration][appenders][RollingFile]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @22 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][RollingFile][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @23 : 23 - no applicable action for [Policies], current ElementPath is [[configuration][appenders][RollingFile][Policies]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @24 : 45 - no applicable action for [TimeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][TimeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @25 : 57 - no applicable action for [SizeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][SizeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @27 : 48 - no applicable action for [DefaultRolloverStrategy], current ElementPath is [[configuration][appenders][RollingFile][DefaultRolloverStrategy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @28 : 79 - no applicable action for [ThresholdFilter], current ElementPath is [[configuration][appenders][RollingFile][ThresholdFilter]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @32 : 14 - no applicable action for [loggers], current ElementPath is [[configuration][loggers]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @36 : 64 - no applicable action for [logger], current ElementPath is [[configuration][loggers][logger]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @37 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @38 : 43 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @39 : 44 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @43 : 77 - no applicable action for [logger], current ElementPath is [[configuration][loggers][logger]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @44 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @50 : 28 - no applicable action for [root], current ElementPath is [[configuration][loggers][root]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @52 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @53 : 43 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @54 : 44 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java: 162 ) at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java: 66 ) at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java: 56 ) at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java: 114 ) at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java: 309 ) at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java: 277 ) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java: 240 ) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java: 213 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java: 172 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java: 165 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java: 139 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java: 122 ) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java: 74 ) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java: 54 ) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java: 325 ) at org.springframework.boot.SpringApplication.run(SpringApplication.java: 296 ) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java: 121 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java: 98 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java: 116 ) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java: 83 ) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java: 189 ) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java: 131 ) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java: 230 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java: 228 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$ 1 .runReflectiveCall(SpringJUnit4ClassRunner.java: 287 ) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java: 12 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java: 289 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 247 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 94 ) at org.junit.runners.ParentRunner$ 3 .run(ParentRunner.java: 290 ) at org.junit.runners.ParentRunner$ 1 .schedule(ParentRunner.java: 71 ) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java: 288 ) at org.junit.runners.ParentRunner.access$ 000 (ParentRunner.java: 58 ) at org.junit.runners.ParentRunner$ 2 .evaluate(ParentRunner.java: 268 ) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java: 61 ) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java: 70 ) at org.junit.runners.ParentRunner.run(ParentRunner.java: 363 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java: 191 ) at org.junit.runner.JUnitCore.run(JUnitCore.java: 137 ) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java: 68 ) at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java: 47 ) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java: 242 ) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java: 70 ) java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java: 124 ) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java: 83 ) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java: 189 ) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java: 131 ) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java: 230 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java: 228 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$ 1 .runReflectiveCall(SpringJUnit4ClassRunner.java: 287 ) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java: 12 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java: 289 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 247 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 94 ) at org.junit.runners.ParentRunner$ 3 .run(ParentRunner.java: 290 ) at org.junit.runners.ParentRunner$ 1 .schedule(ParentRunner.java: 71 ) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java: 288 ) at org.junit.runners.ParentRunner.access$ 000 (ParentRunner.java: 58 ) at org.junit.runners.ParentRunner$ 2 .evaluate(ParentRunner.java: 268 ) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java: 61 ) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java: 70 ) at org.junit.runners.ParentRunner.run(ParentRunner.java: 363 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java: 191 ) at org.junit.runner.JUnitCore.run(JUnitCore.java: 137 ) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java: 68 ) at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java: 47 ) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java: 242 ) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java: 70 ) Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.core.joran.spi.Interpreter @3 : 16 - no applicable action for [appenders], current ElementPath is [[configuration][appenders]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @4 : 67 - no applicable action for [Console], current ElementPath is [[configuration][appenders][Console]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @5 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][Console][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @10 : 119 - no applicable action for [RollingFile], current ElementPath is [[configuration][appenders][RollingFile]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @11 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][RollingFile][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @12 : 23 - no applicable action for [Policies], current ElementPath is [[configuration][appenders][RollingFile][Policies]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @13 : 45 - no applicable action for [TimeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][TimeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @14 : 57 - no applicable action for [SizeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][SizeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @16 : 48 - no applicable action for [DefaultRolloverStrategy], current ElementPath is [[configuration][appenders][RollingFile][DefaultRolloverStrategy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @21 : 79 - no applicable action for [RollingFile], current ElementPath is [[configuration][appenders][RollingFile]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @22 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][RollingFile][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @23 : 23 - no applicable action for [Policies], current ElementPath is [[configuration][appenders][RollingFile][Policies]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @24 : 45 - no applicable action for [TimeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][TimeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @25 : 57 - no applicable action for [SizeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][SizeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @27 : 48 - no applicable action for [DefaultRolloverStrategy], current ElementPath is [[configuration][appenders][RollingFile][DefaultRolloverStrategy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @28 : 79 - no applicable action for [ThresholdFilter], current ElementPath is [[configuration][appenders][RollingFile][ThresholdFilter]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @32 : 14 - no applicable action for [loggers], current ElementPath is [[configuration][loggers]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @36 : 64 - no applicable action for [logger], current ElementPath is [[configuration][loggers][logger]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @37 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @38 : 43 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @39 : 44 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @43 : 77 - no applicable action for [logger], current ElementPath is [[configuration][loggers][logger]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @44 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @50 : 28 - no applicable action for [root], current ElementPath is [[configuration][loggers][root]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @52 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @53 : 43 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @54 : 44 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java: 316 ) at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java: 277 ) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java: 240 ) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java: 213 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java: 172 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java: 165 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java: 139 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java: 122 ) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java: 74 ) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java: 54 ) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java: 325 ) at org.springframework.boot.SpringApplication.run(SpringApplication.java: 296 ) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java: 121 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java: 98 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java: 116 ) ... 24 more Caused by: java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.core.joran.spi.Interpreter @3 : 16 - no applicable action for [appenders], current ElementPath is [[configuration][appenders]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @4 : 67 - no applicable action for [Console], current ElementPath is [[configuration][appenders][Console]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @5 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][Console][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @10 : 119 - no applicable action for [RollingFile], current ElementPath is [[configuration][appenders][RollingFile]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @11 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][RollingFile][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @12 : 23 - no applicable action for [Policies], current ElementPath is [[configuration][appenders][RollingFile][Policies]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @13 : 45 - no applicable action for [TimeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][TimeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @14 : 57 - no applicable action for [SizeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][SizeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @16 : 48 - no applicable action for [DefaultRolloverStrategy], current ElementPath is [[configuration][appenders][RollingFile][DefaultRolloverStrategy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @21 : 79 - no applicable action for [RollingFile], current ElementPath is [[configuration][appenders][RollingFile]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @22 : 96 - no applicable action for [PatternLayout], current ElementPath is [[configuration][appenders][RollingFile][PatternLayout]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @23 : 23 - no applicable action for [Policies], current ElementPath is [[configuration][appenders][RollingFile][Policies]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @24 : 45 - no applicable action for [TimeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][TimeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @25 : 57 - no applicable action for [SizeBasedTriggeringPolicy], current ElementPath is [[configuration][appenders][RollingFile][Policies][SizeBasedTriggeringPolicy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @27 : 48 - no applicable action for [DefaultRolloverStrategy], current ElementPath is [[configuration][appenders][RollingFile][DefaultRolloverStrategy]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @28 : 79 - no applicable action for [ThresholdFilter], current ElementPath is [[configuration][appenders][RollingFile][ThresholdFilter]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @32 : 14 - no applicable action for [loggers], current ElementPath is [[configuration][loggers]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @36 : 64 - no applicable action for [logger], current ElementPath is [[configuration][loggers][logger]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @37 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @38 : 43 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @39 : 44 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @43 : 77 - no applicable action for [logger], current ElementPath is [[configuration][loggers][logger]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @44 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][logger][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @50 : 28 - no applicable action for [root], current ElementPath is [[configuration][loggers][root]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @52 : 42 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @53 : 43 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] ERROR in ch.qos.logback.core.joran.spi.Interpreter @54 : 44 - no applicable action for [appender-ref], current ElementPath is [[configuration][loggers][root][appender-ref]] at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java: 162 ) at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java: 66 ) at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java: 56 ) at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java: 114 ) at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java: 309 ) ... 38 more Disconnected from the target VM, address: '127.0.0.1:65035' , transport: 'socket' Process finished with exit code - 1 |
首先我們看上面的錯誤日志
1
2
|
Logging system failed to initialize using configuration from 'classpath:log4j2-dev.xml' java.lang.IllegalStateException: Logback configuration error detected: |
如果只看這兩句的話我們可能會認為是我們的日志文件log4j2-dev.xml配置錯了,或者路徑找不到,其實不然。正解是我們pom文件配置的有問題,jar包存在沖突,下面來看下我們的pom文件吧
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
|
< dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-jdbc</ artifactId > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-log4j2</ artifactId > </ dependency > |
上面的pom文件是最初報錯時的配置文件,看上面的配置文件貌似沒有問題,我們需使用log4j2日志的starter也已經引入了,但是這里我們需要注意一點就是我們在引入spring-boot-starter-web包的時候他里面默認使用了logback日志,這樣就會產生日志包的沖突,其實不只是starter-web包默認引入的logback還有很多的包默認引入的logback包,看下圖
上圖中是這個pom文件的jiar包結構示意圖,log4j2部分就是我們新引入的spring-boot-starter-log4j2包,上圖中我通過黃線畫出了現在系統中所有logback的引入,可以看出所有引用,這里涉及到幾個包,分別是web包,mybatis包,jdbc包。那我們現在要解決jar包沖突的問題是不是需要每個包下都排除默認引用的logger日志呢,理論上是完全沒有問題的,但是那樣豈不是很費事,2種解決辦法。
解決辦法1
統一排除
1
2
3
4
5
6
7
8
9
10
|
< dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter</ artifactId > < exclusions > < exclusion > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-logging</ artifactId > </ exclusion > </ exclusions > </ dependency > |
解決辦法2
那我只導用了web包,不想導入spring-boot-starter能不能解決呢?
答 : 能
1
2
3
4
5
6
7
8
9
10
|
< dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > < exclusions > < exclusion > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-logging</ artifactId > </ exclusion > </ exclusions > </ dependency > |
看見第二個解決辦法,問題是不是來了。很多包都默認使用的logback,你單獨排除了web包是不是還會出現這個問題,
答 : 是的會出現,這里就需要知道pom文件的加載順序了,pom文件的加載順序也是從上至下執行,那么我們就需要把web包放到pom文件中的第一位,在向下執行的時候也會排除所有的默認logger了。
上面就是兩種解決辦法。希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/m0_37034294/article/details/82801294