很久没使用log4j,一直都使用的是logback,记得之前使用log4j的时候,需要自己写个log4jInit的辅助类来帮助初始化log4j的配置文件,现在发现spring已经提供了各种支持,所以在此记录下。以前的老土方式可以放弃了(貌似spring很早就提供了,自己土了)
做个广告,logback是不需要这个辅助类的,因为他是依据文件名自己搜索初始化的,而且还有个默认的初始化。(非常喜欢logback)
说下spring里配置log4j的方式吧:
第一种方式:类似自己写个log4J的初始化辅助类,指定classpath中的文件即可,不管是xml还是properties都可以,因为他内部有做判断的。
<bean id="log4jInitialization"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass"
value="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list>
<value>classpath:log4j.xml</value>
</list>
</property>
</bean>
第二种方式:其实主要原理是servlet中listener的使用
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>1000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
看下他这里有个 log4jRefreshInterval参数,内部调用的是PropertyWatchdog ,这个起的作用就是动态来观察配置文件是否修改,修改了以后重新初始化配置,jboss里的log也是依据这个来动态修改level起作用的。如果你可以修改这个文件,那使用这个方式最好了。因为第一个方式一般会在jar包了。当然第一个方式也可以修改为动态观察日志的方式了,因为spring内部重载了那个方法,只是多加了个参数而已。
参考:http://firstpartners.net/kb/index.php/Spring_Pointer_to_Log4j_Configuration_File
http://helpdesk.objects.com.au/java/how-to-specify-log4j-configuration-in-spring-application
分享到:
相关推荐
3. **配置SpringBoot**:在`application.properties`中指定Log4j配置文件位置。 ```properties logging.config=classpath:log4j.properties ``` ### SpringBoot与Log4j2 Log4j2作为Log4j的升级版,提供更好的性能...
2. 配置数据源:在应用的配置文件(如Spring的application.properties或XML配置文件)中,替换原始的数据源为log4jdbc提供的监控数据源。例如,如果你使用的是Apache DBCP,原本的数据源配置可能如下: ```...
- **配置Log4j**:Spring Boot允许在类路径下的`log4j2.xml`或`log4j2.json`文件中配置Log4j。例如,创建一个`log4j2.xml`文件,内容如下: ```xml <Configuration status="WARN"> [%t] %-5level %logger{...
本文将详细介绍如何在Spring Boot项目中整合Log4j2,以实现更精细化的日志管理和监控。 首先,理解Log4j2相较于Log4j的优势。Log4j2不仅继承了Log4j的优秀特性,还引入了许多改进,如异步日志记录提高性能、动态...
通过灵活的配置文件(通常为`log4j.properties`或`log4j.xml`),开发者可以方便地调整日志行为,满足不同环境的需求。 **ApplicationContext** ApplicationContext是Spring框架的一部分,它提供了一个全面的上下文...
- **Spring Boot**:在Spring Boot项目中,可以通过application.properties或application.yml设置log4j2配置,或者通过`spring-boot-starter-log4j2`依赖自动配置。 - **Spring MVC**:在非Spring Boot的Spring MVC...
- **配置日志**:创建`log4j2-spring.xml`配置文件,定义日志级别、输出格式、Appender等。例如: ```xml <Configuration status="WARN"> [%t] %-5level %logger{36} - %msg%n"/> </...
1. **添加依赖**:在`pom.xml`文件中,我们需要引入Spring Boot的Starter Web、Mybatis以及其Spring Boot Starter,还有Log4j的相关依赖。这一步确保了我们能够使用Spring Boot的自动配置功能以及Mybatis和Log4j的...
Spring框架作为Java应用的基石,提供了与各种日志系统集成的能力,其中包括Log4j2。本篇文章将深入探讨如何在Spring 5中整合Log4j2日志工具,以实现高效、灵活的日志管理。 首先,我们来理解Spring 5和Log4j2的基本...
本示例源码将展示如何在Spring Boot项目中集成和使用Log4j进行日志管理。 首先,我们需要在Spring Boot项目的`pom.xml`文件中添加Log4j的依赖。确保你的Maven依赖中有以下内容: ```xml <groupId>org.spring...
由于 Log4j 的日志风格仍然备受欢迎,因此本文将介绍如何在 Spring Boot 高版本中继续使用 Log4j。 解决方法 首先,我们需要手动加入 Log4j 的 jar 文件。在项目中创建一个文件夹,然后将 Log4j 的 jar 文件添加到...
Slf4j 是一个 Java 日志记录门面,它提供了一个通用的日志记录API,允许开发者使用不同的日志记录框架,例如 Logback、Log4j 等。在 Springboot 项目中,Slf4j 是默认的日志记录框架。本文将介绍如何使用 Slf4j 将...
Spring Cloud Config helps you guarantee that your service’s configuration information is centralized in a single repository, versioned and repeatable across all instances of your services. Chapter 4...
接下来,我们需要在 application.yml 文件中配置 Log4jdbc 的数据库连接信息: ```yaml datasource: url: jdbc:log4jdbc:oracle:thin:@192.168.11:1521:orcl username: test password: test driver-class-name: ...
Spring Boot允许我们在应用的属性文件`application.properties`或`application.yml`中设置Log4j2的相关属性。例如: ```properties logging.level.root=info logging.file.name=logs/app.log ``` 或者使用YAML格式...
引入Log4j2后,我们不再需要对代码中的日志API做任何更改,因为Spring Boot已经为SLF4J日志门面进行了适配。只需替换日志框架并提供相应的配置文件。 创建`log4j2.xml`配置文件,将其放在项目的`src/main/resources...
Spring Boot提供了对多种日志框架的支持,如Logback、Log4j2等,同时也内置了对Java Util Logging的默认支持。本篇文章将详细探讨如何在Spring Boot项目中配置日志输出。 首先,我们需要理解Spring Boot的日志层次...
4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. Getting Started 8. Introducing Spring Boot 9. System Requirements 9.1. Servlet ...
use distributed configuration with Spring Cloud Config in your applications. You will learn how to enable different backend repositories of property sources and push change notifications using Spring ...
Spring Boot默认集成了Logback或Log4j2作为日志系统,并提供了简单易用的日志配置。 10. **健康检查与端点** Spring Boot的Actuator模块提供了多个端点,如`health`端点用于检查应用的健康状况,`metrics`端点...