Spring最擅长的,就是在别家的蛋糕上再加些cream,让你J2EE without Spring的时候心痒痒。
log4j,可以有如下的cream:
1. 动态的改变记录级别和策略,不需要重启Web应用,如《Effective Enterprise Java》所说。
2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。
3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。
在web.xml 添加
<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>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
在上文的配置里,
Log4jConfigListener会去WEB-INF/log4j.propeties 读取配置文件;
开一条watchdog线程每60秒扫描一下配置文件的变化;
并把web目录的路径压入一个叫webapp.root的系统变量。
然后,在log4j.properties 里就可以这样定义logfile位置
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log
如果有多个web应用,怕webapp.root变量重复,可以在context-param里定义webAppRootKey。
在jboss中启动时出错,
2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR A "org.jboss.logging.util.OnlyOnceErrorHandler" object is not assignable to a "org.apache.log4j.spi.ErrorHandler" variable.
2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR The class "org.apache.log4j.spi.ErrorHandler" was loaded by
2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR [WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
java.net.FactoryURLClassLoader@40f7a8
] whereas object of type
2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR "org.jboss.logging.util.OnlyOnceErrorHandler" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@120a47e].
2006-03-22 00:58:39,133 INFO [STDOUT] log4j:ERROR Could not create an Appender. Reported error follows.
2006-03-22 00:58:39,133 INFO [STDOUT] java.lang.ClassCastException
我log4j.properties如下:
log4j.rootLogger=DEBUG,stdout,R
#log4j.rootLogger=DEBUG,R
#--------------------stdout--------------------------------
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
#--------------------R--------------------------------
#log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#this log file will be stored in web server's /bin directory,modify to your path which want to store.
log4j.appender.R.File=${webapp.root}/WEB-INF/logs/MeetPortal.log
#log4j.appender.R.datePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.R.datePattern='.'yyyy-MM-dd
log4j.appender.R.append=true
## Keep one backup file
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
#[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
分享到:
相关推荐
- **实现原理**:通过配置JBOSS的代理机制,使得Spring AOP可以在类加载时自动为指定的方法添加横切关注点。 - **应用场景**: - 监控方法调用的时间和参数。 - 实现事务管理。 - 日志记录。 ##### 2.4 Spring...
将这两个插件添加到项目中,开发者可以保持原有的Spring架构不变,同时利用JBoss AS的高级特性,如集群、安全管理、EJB支持等。迁移过程中的主要工作将是调整应用配置,以适应新的服务器环境,并测试所有功能的正确...
在实际应用中,通常需要将这些jar包添加到项目的类路径中,或者在JBoss的lib目录下,以确保它们在应用启动时被正确加载。 在开发过程中,为了确保最佳的兼容性和性能,开发者还应该注意以下几点: 1. 确保使用的...
在`$JBOSS_HOME/server/default/conf/jboss-service.xml`中添加SSL端口配置,并在`$JBOSS_HOME/server/default/conf/server.xml`中配置`<Connector>`标签以启用SSL。 10. **配置双向SSL**: 双向SSL(也称为互认证...
将JBoss的bin目录添加到系统路径中,以方便启动和停止服务器。 2. **启动JBoss**:运行`run.bat`或`run.sh`脚本启动服务器。成功启动后,会看到类似"JBoss (Microcontainer) [5.1.0.GA] Started in 1m:2s:610ms"的...
- 配置Spring:在Web应用的`web.xml`中配置Spring的DispatcherServlet,并添加Spring的上下文配置文件。 - 创建Spring Bean:定义需要在JSF中使用的业务逻辑和服务层Bean,并使用Spring的注解(如`@Component`、`@...
在`pom.xml`中添加以下代码: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-tomcat <scope>provided ``` 4. **配置Spring Boot应用**:在Spring Boot的配置文件`application....
JBoss支持热部署,即在运行时添加或更新应用程序。管理工具如JConsole、Hawtio和WildFly CLI提供图形界面和命令行接口,用于监控服务器状态和执行管理操作。 9. **日志与调试** JBoss的日志框架允许自定义日志...
- **引入依赖**:在`pom.xml`中添加Spring和RestEasy的相关依赖。 - **配置Spring**:在`applicationContext.xml`中配置Spring Bean,包括RestEasy的拦截器、提供者等。 - **配置RestEasy**:在`web.xml`中配置...
在系统环境变量中添加这些设置。 4. **检查运行**:在命令行中,进入 JBoss 的 bin 目录,然后运行 `standalone.bat` (Windows) 或 `standalone.sh` (Linux/Unix),如果一切正常,JBoss 将启动并监听默认端口 8080...
- 在Tomcat的`lib`目录下添加Jboss 5.0的client包,这些包通常包含EJB客户端调用所需的类和依赖。 2. **配置EJB3.0**: - 在Jboss 5.0服务器上部署EJB 3.0模块。EJB 3.0引入了注解驱动的开发,简化了EJB的创建和...
如果想在SpringBoot项目中使用log4j,除了引入相应的jar包,还需要排除SpringBoot默认的日志实现,并添加log4j的适配器,如`log4j-slf4j-impl`。这样,SLF4J会通过适配器调用log4j进行日志记录,保持代码的兼容性。...
为了确保Eclipse能够顺利支持Hotswap,可能需要在eclipse.ini文件中添加一些参数,如增大内存分配、开启日志记录等。 特别提示,如果使用HSF_JETTY插件,可以通过升级插件实现Hotswap功能,无需手动安装。未来,Hot...
在Spring框架中,注解和Validation是两个关键的组件,它们极大地简化了应用程序的开发过程。Validation主要用于数据验证,而Spring注解则提供了声明式编程的能力,使得代码更加简洁、可读性更强。这里我们将详细探讨...
2. **AOP(面向切面编程)**:Spring 的 AOP 支持允许在服务层添加事务管理、日志记录等通用行为,使得代码更加简洁。 3. **XML 配置简化**:Spring 可以通过 XML 配置文件管理 XFire 的服务、客户端和服务端拦截器...
对于开发环境,如JBoss,你可能需要将Acegi Security的jar包添加到类路径中,以便在运行时正确加载和使用。 总结来说,"acegi-security-jboss-0.8.3.jar.zip"是针对JBoss应用服务器的一个旧版Acegi Security框架的...
在不使用Maven的情况下,在Eclipse中创建Spring Boot工程,你需要手动管理依赖的jar包。以下是一些关于这些jar包及其在Spring Boot项目中的作用的关键知识点: 1. **jboss-logging-3.3.0.Final.jar**:这是一个日志...
在实际项目中,将这些jar包添加到项目的类路径下,可以快速搭建起Spring+Hibernate的开发环境。同时,注意版本兼容性,因为不同版本的Spring和Hibernate可能有不兼容的问题。通过合理选择和配置这些jar包,可以有效...
2. 在JBoss的配置文件(如standalone.xml或domain.xml)中添加Druid数据源配置,包括数据库URL、用户名、密码、最大最小连接数等参数。 3. 配置Druid的监控和日志,如启用StatFilter和StatViewServlet,设置相应的...
在Spring中,为了更好地管理和组织不同层次的组件,引入了一系列的注解来简化配置。具体来说: - **@Component**:这是一个通用的组件注解,用于标记任何类型的组件。当我们不确定一个类属于哪个特定层时,可以使用...