此配置把全部日志写到一个文件,然后把error日志抽出来再单独写一个文件
这样查找日志方便点。。。
### set log levels ###
log4j.rootLogger = info, stdout, D, E
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c:%L - %m%n
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${WORKDIR}/logs/log.log
log4j.appender.D.Append = true
## 输出DEBUG级别以上的日志
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] - %c:%L - [%p] %m%n
### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.E.File = ${WORKDIR}/logs/error.log
log4j.appender.E.Append = true
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss} [%t\:%r] - %c:%L - [%p] %m%n
${WORKDIR} 在容器启动的时候添加:
/**
* WebContainerListener.java
*
* Created Date: 2010/07/12
* Last Update: 2010/07/12
*
* Copyright (c) Wunderman. All Rights Reserved.
*/
package com.cal.interceptor;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* @version 1.00
*
* <b>修改历史:</b><br>
* @history 2010/07/12: 初版
* @author mahongmin
* @peer review
*
*
*/
public class WebContainerListener implements ServletContextListener{
/**
* 容器生命周期结束
*/
public void contextDestroyed(ServletContextEvent sce) {
}
/**
* 容器初始化
*/
public void contextInitialized(ServletContextEvent sce) {
createLogFile(sce);
}
/**
* 如果没有日志文件,则创建
* @param sce
*/
private void createLogFile(ServletContextEvent sce){
String root = sce.getServletContext().getRealPath("");
String separator = File.separator ;
//全部日志
String logName = "log.log" ;
//仅错误日志
String logEName = "error.log" ;
String directoryLog = root + separator + "logs";
String directoryELog = root + separator + "logs";
File fLog = new File(directoryLog , logName) ;
File fELog = new File(directoryELog , logEName) ;
if(!fLog.exists()) {
fLog.getParentFile().mkdirs() ;
try {
fLog.createNewFile() ;
} catch (IOException e) {
e.printStackTrace();
}
}
if(!fELog.exists()) {
fELog.getParentFile().mkdirs() ;
try {
fELog.createNewFile() ;
} catch (IOException e) {
e.printStackTrace();
}
}
System.setProperty("WORKDIR", root);
}
}
分享到:
相关推荐
5. **log4j配置文件**:在`log4j.properties`文件中,我们可以定义日志级别(如INFO、DEBUG等)、日志输出的目标(如控制台、文件等)以及输出格式。例如,`log4j.rootCategory=INFO, file`设置了日志级别为INFO,并...
目前,Log4j有两个主要版本:Log4j 1.x 和 Log4j 2.x。对于新手来说,建议从Log4j 2.x开始学习,因为它提供了更多高级特性并且修复了许多旧版本的问题。 官方网站地址:...
不过,需要注意的是,目前Log4j 1.x版本的开发者已经明确表示,logj4.properties文件将来只会在Log4j内部使用,因此建议开发者不要再使用该文件,以避免在升级时遇到不必要的麻烦。 在log4j.xml文件中,定义了一些...
### Log4j详解 #### 输出级别的种类 在Log4j中,日志记录的信息可以根据不同的级别进行筛选。这些级别从高到低分别为:`FATAL`、`ERROR`、`WARN`、`INFO`、`DEBUG`。这些级别的定义如下: - **FATAL**:致命错误...
Log4j通常通过一个配置文件(通常是`log4j.properties`或`log4j.xml`)来管理各种设置,这些配置决定了日志的行为方式,例如: - **指定Logger的级别**:如设置根Logger的默认级别为INFO。 - **配置Appender的类型和...
目前,市场上流行的日志解决方案主要有Log4j、Log4j+JCL以及Log4j+SLF4J等。本文将详细介绍这些日志框架的配置与使用方法。 #### 1.1 下载所需组件 为了进行日志框架的学习与实践,首先需要准备以下组件: 1. **...
3. **添加相关配置文件**:通常需要添加`log4j.properties`和`jdbc.properties`两个配置文件,用于配置日志和数据库连接信息。 - **`jdbc.properties`**: ```properties jdbc.driver=com.mysql.jdbc.Driver ...
目前,社区推荐使用更安全的Log4j 2.x版本。 总结来说,Log4j作为一款强大的日志工具,为Java开发者提供了高效、灵活的日志管理手段,极大地便利了开发过程中的调试和问题排查。通过合理的配置和使用,可以显著提升...
配置文件(通常为`logback.xml`或`log4j.properties`)决定了日志的级别(如ERROR、WARN、INFO、DEBUG、TRACE),输出目的地(控制台、文件、网络等),以及日志格式。 例如,在Logback中,你可以设置如下配置: - ...
所以目前比较流行的是 Commons-logging 和 Log4j 结合使用。 * 部署日志器:下载 commons-logging.jar 和 log4j.jar 包,能后把它们放到工程的 lib 目录下,引入工程中。 * 指定日志器:在属性文件 common-logging....
log4j.appender.appender3.URL=jdbc:mysql://127.0.0.1:3306/doroodo?characterEncoding=UTF-8 ---->日志数据库链接 log4j.appender.appender3.user=root ---->日志数据库用户名 log4j.appender.appender3.password=...
至于如何在代码中使用Slf4j,我们可以创建一个静态logger变量,例如`private static final Logger log = LoggerFactory.getLogger(MyClass.class);`,然后在需要记录日志的地方调用`log.info()`、`log.debug()`等...
日志文件log4j.properties** 示例: ```properties log4j.rootLogger=INFO, console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender....
app.datasource.cbssxin.druid.filters=stat,wall,log4j app.datasource.cbssxin.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 ``` 配置 Druid 管理后台 在 SpringBoot ...
System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties"); ``` 最后,通过调用`basicGeneral`方法来识别图片中的文字: ```java JSONObject res = client.basicGeneral(path, new HashMap, String>...
2. SLF4J日志框架,提供类似log4j的日志记录功能,可以在http://www.slf4j.org/获取。 3. Java串口通信库,对于Windows系统通常是comm.jar,其他非Windows系统可以使用RXTXcomm.jar和相应的库文件(如Linux下的...
2. `src/main/resources`: 可能包含了日志配置文件,如log4j.properties或logback.xml。 3. `pom.xml` 或 `build.gradle`: 项目的构建文件,描述了项目依赖和构建过程,可能指定了日志库版本。 4. `README.md`: 项目...
- 同样地,复制并编辑 `hive-log4j.properties` 文件,将 `EventCounter` 设置为 `org.apache.hadoop.log.metrics.EventCounter`,以确保日志记录的正确性。 ##### 2.4 整合 MySQL 由于 Hive 默认使用的 Derby ...
SpringBoot默认集成了各种日志框架,如Logback、Log4j2等。在application.properties中,你可以通过以下方式配置日志级别: ``` logging.level.root=WARN logging.level.org.springframework.web=DEBUG ``` 这将设置...
9. **Other Resources**:其他资源文件,如静态资源(CSS、JS、图片)、国际化文件(i18n)、日志配置(log4j.properties)等。 学习这个源码,可以帮助初学者理解SpringBoot如何整合各种服务,如何处理HTTP请求,...