`
bugyun
  • 浏览: 559039 次
社区版块
存档分类
最新评论

spring cloud 1.4 以上版本不再支持log4j,而是支持其升级版log4j2

 
阅读更多

spring cloud 1.4 以上版本不支持 log4j , 而替代 log4j 的是 log4j2, 虽然log4j2在性能方面快了将近10倍,但是log4j2不再支持log4j.properties

故如果spring cloud如果由1.3升级的话去配置中心取配置文件要注意了

 

例子1.3版本的:

 

 pom.xml 新加内容

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

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

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

 

 

application.properties

logging.level.com.bugyun=DEBUG

 

 

log4j.properties

# LOG4J配置
log4j.rootCategory=INFO, stdout, file, errorfile
log4j.category.com.bugyun=${logging.level.com.bugyun}, bugyunfile
log4j.logger.error=errorfile

# 控制台输出
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,SSS} %5p %c{1}:%L - %m%n

# root日志输出
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=logs/all.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,SSS} %5p %c{1}:%L - %m%n

# error日志输出
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorfile.file=logs/error.log
log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
log4j.appender.errorfile.Threshold = ERROR
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

# com.bugyun下的日志输出
log4j.appender.bugyunfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.bugyunfile.file=logs/my.log
log4j.appender.bugyunfile.DatePattern='.'yyyy-MM-dd
log4j.appender.bugyunfile.layout=org.apache.log4j.PatternLayout
log4j.appender.bugyunfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n

 

 

 例子1.4版本

pom.xml 新加内容

		<!-- log4j依赖包 begin -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<!-- spring boot 1.3.5.RELEASE使用log4j,
					在spring boot 1.4的版本中,就需要使用log4j2,否则会出现如下错误:
					Project build error: 'dependencies.dependency.version' for org.springframework.boot:spring-boot-starter-log4j:jar is missing. 
			<artifactId>spring-boot-starter-log4j2</artifactId>
			-->
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
		<!-- 单元测试包 begin -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency> 
		<!-- 单元测试包 end -->
		<!-- log4j依赖包 end -->

 

application.properties

logging.config=classpath:log4j2.xml 

 

 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出 -->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数 -->
<configuration status="WARN">
	<!--先定义所有的appender -->
	<appenders>
		<!--这个输出控制台的配置 -->
		<console name="Console" target="SYSTEM_OUT">
			<!--输出日志的格式 -->
			<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n" />
			<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
		</console>
		
		<!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
		<RollingFile name="RollingFileInfo" fileName="logs/info.log"
			filePattern="logs/info-%d{yyyy-MM-dd-HH-mm}-%i.log">
			<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
			<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
			<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n" />
			<Policies>
				<TimeBasedTriggeringPolicy />
				<SizeBasedTriggeringPolicy size="100 MB" />
			</Policies>
		</RollingFile>
		
		
		<RollingFile name="RollingFileError" fileName="logs/error.log"
			filePattern="logs/error-%d{yyyy-MM-dd-HH-mm}-%i.log">
			<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
			<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n" />
			<Policies>
				<TimeBasedTriggeringPolicy />
				<SizeBasedTriggeringPolicy size="100 MB" />
			</Policies>
		</RollingFile>
	</appenders>
	
	<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
	<loggers>
		<root level="all">
			<appender-ref ref="Console" />
			<appender-ref ref="RollingFileInfo" />
			<appender-ref ref="RollingFileError" />
		</root>
	</loggers>
</configuration>

 

 

例子1.4如果用到配置中心

application.properties 里的 

 

logging.config=classpath:log4j2.xml 
 迁移到配置中心配置文件里,同时log4j2.xml文件以及留在旧的工程里

 

分享到:
评论

相关推荐

    log4j乱码问题解决办法

    ### log4j乱码问题解决...通过以上步骤,可以有效地解决log4j中的乱码问题。正确的日志配置对于开发工作至关重要,它能够帮助开发者更高效地进行调试和问题追踪。希望本文能为你解决实际工作中遇到的相关问题提供帮助。

    SpringCloud——分布式配置中心(Spring Cloud Config)

    此外,日志记录也很重要,可以使用标准的日志框架(如 Logback 或 Log4j)记录 Config Server 和 Client 的活动。 总结起来,Spring Cloud Config 是一个强大的工具,它使得在分布式系统中管理配置变得更加简单和...

    logging-log4j2-log4j-2.15.0-rc2.7z

    1. **log4j-spring-cloud-config**:这是一个集成Spring Cloud Config的服务,允许开发者在分布式环境中动态配置Log4j的设置。2.15.0-rc2版本可能会对这部分的配置管理和动态更新机制进行优化,确保在大规模微服务...

    若依SpringCloud微服务版-傻瓜式教程模式

    【若依SpringCloud微服务版-傻瓜式教程模式】是一个面向初学者的教程,旨在帮助没有微服务架构经验的人快速上手搭建基于Spring Cloud的若依(RuoYi)微服务系统。若依是一个开源的Java管理框架,集成了Vue前端和Spring...

    Log4j中相对路径的问题

    2. 在`init()`方法中,读取`log4j.properties`文件,获取`log4j.appender.file.File`属性的值,即原始的日志路径。然后,将这个路径替换为实际的环境路径,并更新`log4j.properties`中的这个属性值。 3. 使用`...

    Spring Cloud Finchley SR2全套(集成Spring Gateway)

    &lt;artifactId&gt;log4j-slf4j-impl Redis二次封装的这个项目主要实现了自动延期的功能,可以在配置的时候设置某些缓存是否需要自动延期&lt;默认为ture&gt;,自动延期的将会在获取的时候重置 过期时间来达到自动延期功能。...

    详解SpringCloud Finchley Gateway 统一异常处理

    SpringCloud Finchley Gateway 统一异常处理是指在使用 SpringCloud Finchley 版本的 Gateway 时,如何统一处理系统级异常的方法。默认情况下,SpringCloud Gateway 会返回 HTML 格式的错误页面,而不是我们期望的 ...

    Spring cloud spring boot spring boot admin

    5. **日志监控**:Spring Boot Admin可以集成Logback或Log4j2的日志系统,实时查看应用的日志输出。 6. **UI界面**:Spring Boot Admin提供了一个直观的Web界面,用户可以在这个界面上看到所有注册的应用实例,查看...

    GRPC与Spring Cloud的集成

    同时,使用Logback或Log4j记录gRPC请求的日志,便于问题排查和性能优化。 9. **安全性和认证**:GRPC支持TLS加密,以及基于JWT、OAuth2等的身份验证和授权。在Spring Cloud中,可以利用Spring Security或Oauth2.0来...

    浅谈spring boot 集成 log4j 解决与logback冲突的问题

    现在很流行springboot的开发,小编闲来无事也学了学,开发过程中遇见了log4j日志的一个小小问题,特此记载。 首先在pox.xml中引入对应的maven依赖: &lt;!-- 引入log4j--&gt; &lt;groupId&gt;org.springframework....

    spring cloud feign demo

    - **OpenFeign**:Spring Cloud 对 Feign 进行了封装,增加了更多的功能,如支持 Spring MVC 风格的注解,以及支持 Spring Cloud Config。 6. **示例代码** ```java @FeignClient(name = "service-provider") ...

    springCloud路由网管负载均衡及拦截过滤的简单实现.

    在Spring Cloud框架中,路由网关(Zuul或Spring Cloud Gateway)是系统的重要组成部分,它作为微服务架构中的统一入口,负责请求的路由、负载均衡以及过滤等操作。Spring Boot 2.0的引入为这些功能提供了更稳定、...

    基于Spring Cloud的校园生活管理系统源码.zip

    【Spring Cloud基础概念】 Spring Cloud 是一套微服务解决方案,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态...

    spring-cloud-gateway-access-log-starter:Spring Cloud Gateway访问日志自定义启动器

    春天云网关访问日志启动器简单的Spring Cloud Gateway Access日志启动器建造./gradlew clean build -x test财产 gateway : accesslog : enabled : true # enable or disable logging, default value is true....

    SpringCloud——分布式跟踪(Sleuth)

    2. **日志集成**: Sleuth可以与各种日志框架如Log4j2、Logback等集成,将追踪ID嵌入到日志中,便于根据ID检索相关日志。 3. **Zipkin集成**: Sleuth可以无缝对接Zipkin,将追踪数据发送到Zipkin服务器,提供可视化...

    log4j-pig-master.zip

    【标题】"log4j-pig-master.zip" 提示我们这个压缩包可能包含一个与日志管理和名为"pig"的项目相关的源代码仓库。"log4j"是Apache的一个开源项目,它为Java应用程序提供了强大的日志记录服务。在Java世界里,log4j是...

    Java之 Spring Cloud 微服务搭建网关(第三个阶段)【一】.zip

    同时,可以通过日志框架(如Logback、Log4j2)记录请求和响应信息,以便于调试和问题排查。 在`spring_cloud_demo`项目中,你应该能找到一个示例应用,它演示了如何设置和运行Spring Cloud Gateway。这个示例可能...

    SpringCloud项目中使用Nacos作为注册中心

    本项目中,我们采用Nacos-server-1.3.2版本进行部署,并将其与IntelliJ IDEA(IDEA)环境下的SpringBoot应用集成,以实现服务提供者(nacos-provider)和服务消费者(nacos-consumer)的运行。 首先,让我们了解Nacos。...

    Linux部署springboot(springcloud)启动多个jar

    以上就是在Linux环境中部署SpringBoot(SpringCloud)服务并启动多个jar的基本步骤。通过shell脚本自动化操作,可以大大提高运维效率,同时通过日志管理策略,确保了服务的日志可追溯性。在实际的生产环境中,还可能...

    mastering-spring-cloud2018

    Chapter 4, Service Discovery, will describe a service discovery pattern with Spring Cloud Netflix Eureka. You will learn how to run Eureka server in standalone mode and how to run multiple server ...

Global site tag (gtag.js) - Google Analytics