微服务搭建
集成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/.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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/54708.html