【微服务搭建-集成Log4j 日志配置】

微服务搭建

集成Log4j 配置

第一步:引入 log4j ,依赖

在微服务架构中我们通常会抽取出一个公共的模块,常规命名为 common 模块 ,而其他的微服务都会依赖于这个 模块,所以加入log4j 依赖时,建议在 commom 模块引入:(前提是在父工程引入log4j 依赖管理)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

第二步:准备 log4j 文件 :

这里日志的要求是:在 D:/ayou/ideaWrokSpace/DreamHome/DreamHome/logs/ 路径下生成各个服务自己的 日志,因为后续会有很多个微服务,所以日志按照 服务名称 按天生成。而仅在文件中配置我们是无法动态生成目录的,所以需要 重写DailyRollingFileAppender, 在共功能模块中 重写 DailyRollingFileAppender 如下:

public class AbstractLogDailRollingFileAppender extends DailyRollingFileAppender {
	// 服务名称
    public String SERVER_NAME;
    // 日志路径 
    public String LOG_PATH;
    @Override
    public void activateOptions() {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date();
        // this.fileName 对应着 日志文件中 log4j.appender.error.File 的路径
        LOG_PATH=this.fileName;
        // 当前日期
        String format = dateFormat.format(date);
        // 例如 d:/ayou/dh-user/20230705.error.log
        File file = new File(LOG_PATH + SERVER_NAME + "/" + format);
        if (!file.exists()){
            // 不存在则创建文件夹
            file.mkdir();
        }
        this.fileName=file.getAbsolutePath()+"/"+this.name+".log";
        super.activateOptions();
    }
}

以上代码我们也只是修改了 this.fileName 的路径,为我们自定义的路径,

修改每个微服务的log4j.properties文件: 指定 自定义的日志处理类 com.ayou.dh.common.config.AbstractLogDailRollingFileAppender

log4j.rootLogger=info,error,CONSOLE,info

##
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n


#log4j.logger.info=info
log4j.appender.info=com.ayou.dh.common.config.AbstractLogDailRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.Threshold = info
log4j.appender.info.File=D:/ayou/ideaWrokSpace/DreamHome/DreamHome/logs/dh-user

#log4j.logger.error=error
log4j.appender.error=com.ayou.dh.common.config.AbstractLogDailRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.error.Threshold = error
log4j.appender.error.File=D:/ayou/ideaWrokSpace/DreamHome/DreamHome/logs/dh-user

log4j.logger.Java.SQL.resultset=info
log4j.logger.org.apache=INFO
log4j.logger.Java.SQL.connection=info
log4j.logger.Java.SQL.statement=info
log4j.logger.Java.SQL.prepared.statement=info


log4j.logger.org.hibernate=info
log4j.logger.org.hibernate.SQL=trace
log4j.logger.org.hibernate.hql=trace
log4j.category.org.hibernate.type=trace
log4j.logger.org.spring.framework=info

将log4j.properties文件,放到每个微服务的 resource 文件路径下,并在 application.yml 文件或者 bootstrap.yml 文件 配置 如下:

 logging:
   config: classpath:log4j.properties
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值