Dubbo3 Log4j日志配置全攻略

要开启Dubbo3的Log4j日志配置,需区分不同版本并完成以下步骤:

️ 一、Dubbo 3.3.0-beta.3之前的版本(使用Log4j)

  1. 添加Log4j依赖
    在项目pom.xml中引入Log4j依赖(需确保项目中无其他日志框架冲突依赖):

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    
  2. 创建Log4j配置文件
    在资源目录(如 src/main/resources)下新建 log4j.properties 文件,配置日志级别与输出格式:

    # 设置根日志级别为INFO,输出到控制台和文件
    log4j.rootLogger=INFO, stdout, file
    
    # 控制台输出配置
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] - %m%n
    
    # 文件输出配置(按天滚动)
    log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.File=/var/log/dubbo-service.log
    log4j.appender.file.DatePattern='.'yyyy-MM-dd
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] - %m%n
    
  3. 启用Dubbo访问日志(可选)
    在Dubbo协议配置中开启访问日志(注意日志量较大):

    <dubbo:protocol accesslog="true" />  <!-- 输出到应用日志 -->
    <!-- 或指定独立文件 -->
    <dubbo:protocol accesslog="/path/to/dubbo-access.log" />
    

⚠️ 二、注意事项

  1. 日志框架优先级冲突
    Dubbo默认按以下顺序选择日志框架:
    Log4j > SLF4J > JCL > JDK Logging
    若项目中存在其他日志框架(如Slf4j),需排除其依赖以确保Log4j生效。

  2. Dubbo 3.3.0-beta.3及以上版本
    官方已统一升级至 Log4j2,需改用Log4j2配置:

    • 移除Log4j依赖,引入Log4j2依赖包(如 log4j-core, log4j-slf4j-impl)。
    • 使用 log4j2.xml 替换 log4j.properties
  3. 配置生效验证

    • 检查是否通过系统参数指定日志框架:-Ddubbo.application.logger=log4j
    • 确保无多个日志配置文件冲突(如同时存在 log4j.propertieslogback.xml)。

⚡ 三、问题排查

若日志未生效,尝试:

  1. 清理项目依赖,排除冲突的日志框架JAR包(如 slf4j-log4j12, logback-classic)。
  2. 确认 log4j.properties 文件位置正确(位于 src/main/resources)。
  3. 检查文件路径权限(尤其Linux系统)。

安全提示:Log4j 1.x 存在已知漏洞,建议升级到Log4j2或Slf4j+Logback方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码的余温

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

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

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

打赏作者

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

抵扣说明:

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

余额充值