一直都是把log4j的日志文件位置设定成绝对路径,直到今天发现了一个更好的设置方法, 不论绝对路径还是相对webroot的路径都可以。。。
log4j的通常用法就是通过在其配置文件(xml或properties)中直接将输出文件写死,在很多情况下,这样做是非常简单而又有效的。但这样做的缺点是,如果想让这个web应用运行起来,必须要修改log4j的配置文件。比如struts2.x中log4j的配置,每个人都得按照自己的路径进行配置。这无疑增加了配置的复杂性。因此,在某些情况下,我们更希望日志文件默认就输出到web应用的某个目录里,比如如果想输出日志到webroot/logs/log.log中,这该如何实现呢?
在配置文件中(我是在properties文件中使用的,xml我未测试,理论上一样)使用${user.dir}类似的方式,这里变量必须是System.getPropertities里的变量。而我们则就是要利用这一点。首先在一个Listener里或高优先级、自启动的Servlet里获得应用的发布目录,这是很容易得到的,比如String home = servletContext.getRealPath("/");然后调用System.setPropertity("web_home",home),“web_home”名字可以随意。则log4j.properties里的配置为:log4j.appender.TRACE.File=${web_home}/logs/log.log.则日志会输出到web应用发布目录里的logs目录里。
分享到:
相关推荐
这个“log4j简单范例 日志文件是相对路径的”示例将展示如何配置Log4j来记录日志,并将日志文件保存在程序运行时的相对路径下。 首先,Log4j的核心组件包括Logger(日志器)、Appender(输出目的地)和Layout(格式...
这里`File`属性指定了日志文件的基本路径和文件名,`DatePattern`属性设置了时间格式,使得日志文件按照`logfile.log.yyyy-MM-dd`的格式命名。 3. **配置Layout**:每个Appender还需要一个Layout来决定日志输出的...
在Java应用中使用Log4j进行日志记录的第一步,是创建并配置log4j的属性文件(log4j.properties)。这个文件定义了日志的级别、输出目的地以及日志的格式。以下是一个典型的log4j配置示例: ```properties # 设置根...
2. `log4j.appender.ServerDailyRollingFile.File=${webApp.root}/WEB-INF/logs/sysout.log` 这里使用了之前在`Web.xml`中定义的`webApp.root`属性,指定日志文件的保存位置为Web应用的`WEB-INF/logs`目录下,文件名...
log4j.appender.File.File=/path/to/your/logfile.log # 替换为实际的保存路径 log4j.appender.File.Append=true log4j.appender.File.ImmediateFlush=true log4j.appender.File.DatePattern='.'yyyy-MM-dd # 每天...
Springboot 项目使用 Slf4j 将日志保存到本地目录的实现代码 Slf4j 是一个 Java 日志记录门面,它提供了一个通用的日志记录API,允许开发者使用不同的日志记录框架,例如 Logback、Log4j 等。在 Springboot 项目中...
log4j 提供了多种输出目的地,包括控制台、文件、每天产生一个日志文件、文件到达指定大小时产生一个新文件、将日志信息以流格式发送到任何地方等。 Layout 是 log4j 配置文件中的第三个主要组件,用于定义日志输出...
log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一、场景和需求 假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的...
6. **日志文件路径配置**:在`log4j日志文件路径的配置.txt`中,可能详细描述了如何设置`FileAppender`的`File`属性,指定日志文件的保存位置和文件名。 在实际应用中,根据项目需求,开发者可能会配置多个Appender...
- **log4j.appender.R.File**: 指定滚动文件的保存路径。 - **log4j.appender.R.layout**: 滚动文件输出格式。 - **log4j.appender.R.layout.ConversionPattern**: 滚动文件中日志信息的具体格式化方式。 - **log4j....
- `log4j.appender.FILE.File`:设置日志文件的输出路径。 - `log4j.appender.FILE.layout`:设置日志布局模式,这里使用了PatternLayout。 - `log4j.appender.FILE.layout.ConversionPattern`:定义日志输出的...
然后,创建一个配置文件(如log4j2.xml或log4j2.json),定义日志记录的级别、Appenders和Layouts。例如,你可以设置一个Console Appender将日志输出到控制台,再添加一个File Appender将日志保存到文件。 **日志...
`File`属性指定了日志文件的保存路径;`Append`属性设置为`true`表示追加写入,而非覆盖原有内容;`Threshold`设置了日志的最低级别。 #### 3. 第三级:设置布局格式 布局决定了日志输出的具体格式。Log4j提供了...
2. **灵活的日志文件存储路径**:默认情况下,日志文件会被保存在`/WEB-INF/logs/`目录下,无需指定绝对路径,这使得日志管理变得更加简单且易于维护。 3. **统一的配置文件管理**:`log4j.properties`文件可以与...
- `log4j.appender.R`:配置滚动文件Appender,设置文件路径、最大文件大小及备份索引。 - `log4j.appender.R.layout.ConversionPattern`:定义滚动文件输出的格式化模式。 #### 四、使用场景与最佳实践 - **...
这里,`/data/data/your.package.name/cache/log.txt`是缓存目录下的日志文件路径,`%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n`是日志格式,包含了时间戳、线程、日志级别、类名和日志消息。...
3. **初始化**:在应用程序启动时,Log4j会自动加载配置文件,并根据配置设置日志记录行为。 4. **使用API**:通过调用`Logger`类的方法,如`logger.info()`, `logger.error()`等,可以在代码中插入日志语句。 5. ...
使用 log4j 需要将 log4j-1.2.6.jar 添加到项目的类路径(CLASSPATH)中。可以从 Apache Jakarta 网站下载 log4j 的发行版,并解压缩到适当的目录。确保正确配置了 CLASSPATH,以便在运行时能够找到 log4j 库。 **3...
Log4j是一个广泛使用的Java日志框架,由ApacheJakarta项目开发。它为开发者提供了灵活且功能丰富的日志记录机制,使应用程序中的日志管理变得简单。本教程将深入介绍如何使用Log4j进行日志记录,包括配置、基本用法...
例如,如果希望在开发阶段看到详细日志,可以将rootLogger级别设置为DEBUG,并且使用FileAppender保存日志文件,便于后续分析。在生产环境中,通常会将级别设为WARN或ERROR,只记录重要错误信息。 总结来说,理解并...