ERROR in ch.qos.logback.classic.joran.action.ContextNameAction - Failed to rename context [xxx]

在微服务项目中配置ELK日志中心时遇到由于SpringBoot与Nacos客户端Logback依赖冲突导致的错误。错误信息表明context_name已被定义,解决方案是在启动类中添加代码`System.setProperty(nacos.logging.default.config.enabledfalse)`,禁用nacos-client的日志配置,仅使用项目自身的Logback配置,从而消除冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在微服务实战项目中配置ELK日志中心相关的内容时,出现了标题中的错误,如下图所示。
在这里插入图片描述
错误信息贴在下面了。

23:45:46,970 |-ERROR in ch.qos.logback.classic.joran.action.ContextNameAction - Failed to rename context [newbee-mall-cloud-order-service-log] as [nacos] java.lang.IllegalStateException: Context has been already given a name
	at java.lang.IllegalStateException: Context has been already given a name

报错的原因也不复杂,依赖冲突导致的。

Spring Boot框架中已经集成了日志框架Logback,而项目依赖nacos-client中也配置了Logback(nacos-client中的Logback加载要优先于项目自身的Logback框架),在一个项目中context_name只能定义一次。所以,在项目启动时,nacos-client中的Logback先加载完成后,再加载项目本身的Logback时就出现了冲突。

在这里插入图片描述
这个报错并不影响使用,但是处理掉最好,在启动类中增加如下代码即可。

System.setProperty("nacos.logging.default.config.enabled","false");

只加载自定义的Logback配置,不使用nacos-client依赖中的配置了,这样就不会冲突了。

[iot@k-cldekongfly01 json]$ java -server -Xms2g -Xmx2g -Xmn1500m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/tools/datax/log -Xms2g -Xmx2g -Xmn1500m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/tools/datax/log -Dloglevel=info -Dfile.encoding=UTF-8 -Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener -Djava.security.egd=file:///dev/urandom -Ddatax.home=/data/tools/datax -Dlogback.configurationFile=/data/tools/datax/conf/logback.xml -classpath /data/tools/datax/lib/*:. -Dlog.file.name=aaaaaaaaaaa_conf -Dlogback.debug=true com.alibaba.datax.core.Engine -mode standalone -jobid -1 -job ./kafkaUpdateSend.json 17:05:12,648 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [/data/tools/datax/conf/logback.xml] at [file:/data/tools/datax/conf/logback.xml] 17:05:12,894 |-INFO in ch.qos.logback.core.joran.action.TimestampAction - Using current interpretation time, i.e. now, as time reference. 17:05:12,894 |-INFO in ch.qos.logback.core.joran.action.TimestampAction - Adding property to the context with key="ymd" and value="2025-06-04" to the LOCAL scope 17:05:12,894 |-INFO in ch.qos.logback.core.joran.action.TimestampAction - Using current interpretation time, i.e. now, as time reference. 17:05:12,895 |-INFO in ch.qos.logback.core.joran.action.TimestampAction - Adding property to the context with key="byMillionSecond" and value="17_05_12.894" to the LOCAL scope 17:05:12,895 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 17:05:12,900 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT] 17:05:12,935 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@10:19 - no applicable action for [Encoding], current ElementPath is [[configuration][appender][Encoding]] 17:05:12,978 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender] 17:05:12,980 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [ASYNC_FILE] 17:05:12,989 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Could not find an appender named [FILE]. Did you define it below instead of above in the configuration file? 17:05:12,989 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details. 17:05:12,989 |-ERROR in ch.qos.logback.classic.AsyncAppender[ASYNC_FILE] - No attached appenders found. 17:05:12,989 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender] 17:05:12,991 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE] 17:05:12,994 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 17:05:12,995 |-ERROR in ch.qos.logback.classic.PatternLayout("null") - Empty or null pattern. 17:05:12,997 |-INFO in ch.qos.logback.core.FileAppender[FILE] - File property is set to [/data/tools/datax/log//2025-06-04/aaaaaaaaaaa_conf.log] 17:05:12,998 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender] 17:05:12,999 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [PERF] 17:05:12,999 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 17:05:12,999 |-ERROR in ch.qos.logback.classic.PatternLayout("null") - Empty or null pattern. 17:05:13,001 |-INFO in ch.qos.logback.core.FileAppender[PERF] - File property is set to [/data/tools/datax/log_perf//2025-06-04/aaaaaaaaaaa_conf-17_05_12.894.log] 17:05:13,001 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender] 17:05:13,001 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [ASYNC_PERF] 17:05:13,002 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [PERF] to ch.qos.logback.classic.AsyncAppender[ASYNC_PERF] 17:05:13,003 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNC_PERF] - Attaching appender named [PERF] to AsyncAppender. 17:05:13,004 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNC_PERF] - Setting discardingThreshold to 0 17:05:13,005 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.alibaba.datax.common.statistics.PerfRecord] to INFO 17:05:13,005 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [com.alibaba.datax.common.statistics.PerfRecord] to false 17:05:13,006 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [ASYNC_PERF] to Logger[com.alibaba.datax.common.statistics.PerfRecord] 17:05:13,006 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO 17:05:13,006 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT] 17:05:13,006 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [ASYNC_FILE] to Logger[ROOT] 17:05:13,007 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 17:05:13,010 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@22a71081 - Registering current configuration as safe fallback point 2025-06-04 17:05:13.256 [main] INFO VMInfo - VMInfo# operatingSystem class => sun.management.OperatingSystemImpl 17:05:13,260 |-WARN in ch.qos.logback.classic.AsyncAppender[ASYNC_FILE] - Attempted to append to non started appender [ASYNC_FILE]. 2025-06-04 17:05:13.266 [main] INFO Engine - the machine info =>
最新发布
06-05
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员十三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值