【微服务搭建-集成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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微服务管理的设置需要考虑以下几个方面: 1. 服务注册与发现:微服务架构中的各个服务需要能够自动注册和发现其他服务。可以使用开源的服务注册与发现工具,如Consul、Etcd、ZooKeeper等。这些工具可以让服务在启动时自动注册到注册中心,并且提供了查询接口,让其他服务可以通过查询注册中心获取需要调用的服务的信息。 2. 负载均衡:微服务架构中的服务数量较多,需要能够动态地将请求分发到各个服务实例上,以实现负载均衡。常用的负载均衡工具有Nginx、HAProxy等。这些工具可以通过配置路由规则和权重,将请求转发到不同的服务实例上。 3. 故障转移与容错:微服务架构中,一个服务的故障不能影响整个系统的稳定性。为了保证系统的高可用性,可以使用容错机制,如熔断器、限流器、重试机制等。熔断器可以在服务出现故障或请求超时时自动切换到备用方案,限流器可以限制每个服务的最大并发数,重试机制可以在某个服务不可用时自动重新发送请求。 4. 监控与日志微服务架构中的各个服务需要能够实时收集和展示监控指标和日志信息,以便快速定位和解决问题。可以使用开源的监控与日志工具,如Prometheus、Grafana、ELK Stack等。这些工具可以收集和展示各个服务的性能指标、错误信息、日志等。 5. 部署与扩展:微服务架构中,服务的部署和扩展需要能够快速、自动化地完成。可以使用容器化技术,如Docker、Kubernetes等。使用容器化可以将每个服务打包成一个独立的容器,并使用编排工具进行部署和扩展。 综上所述,微服务管理的设置需要包括服务注册与发现、负载均衡、故障转移与容错、监控与日志、部署与扩展等方面的考虑。这些方面的设置可以借助开源工具和技术来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值