社区
Java
帖子详情
Log4j
bradwoo8621
2003-03-20 11:19:30
请教一个log4j的问题.
log4j中有ERROR, WARN, INFO, DEBUG等几个等级.
我想根据不同的等级将日志输入到不同的文件中, 可以通过配置文件实现吗?
比如ERROR--> error.log
WARN-->warn.log
INFO-->info.log
DEBUG-->debug.log
...全文
82
14
打赏
收藏
Log4j
请教一个log4j的问题. log4j中有ERROR, WARN, INFO, DEBUG等几个等级. 我想根据不同的等级将日志输入到不同的文件中, 可以通过配置文件实现吗? 比如ERROR--> error.log WARN-->warn.log INFO-->info.log DEBUG-->debug.log
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rf_wu
2003-06-18
打赏
举报
回复
还得继续up
qjhaaaaa
2003-06-14
打赏
举报
回复
1、首先将log4j-1.2.8.jar包含入类路径中。
2、Log4J必须在应用的其它代码执行前完成初始化。其初始化内容如下:
import java.io.*;
import javax.servlet.*;
import org.apache.log4j.*;
public class Log4JInit extends HttpServlet {
public void init() throws ServletException {
String prefix = getServletContext().getRealPath("/");
String file = getServletConfig().getInitParameter("log4j-config-file");
// 从Servlet参数读取log4j的配置文件
if (file != null) {
PropertyConfigurator.configure(prefix + file);
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws
IOException, ServletException {}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws
IOException, ServletException {}
}
3、web.xml内容配置如下:具体的文件放在 路径:\webapps\项目名称\WEB-INF\web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>log4jinit</servlet-name>
<servlet-class>com.iss.common.util.Log4JInit</servlet-class>//这里换换成具体的初始化文件包
<init-param>
<param-name>log4j-config-file</param-name>
<param-value>WEB-INF\log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Establish the default list of welcome files -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/FileNoFound.jsp</location>
</error-page>
</web-app>
注意:上面的load-on-startup应设为1,以便在Web容器启动时即装入该Servlet。log4j.properties文件放在根的properties子目录中,也可以把它放在其它目录中。应该把.properties文件集中存放,这样方便管理。
4、log4j.properties的配置,具体的路径在\webapps\项目名称\WEB-INF\log4j.properties
在配置文件中即log4j.properties中这样设置:
#设置成根目录,所有包括debug以上级别的信息都打印出来到日志文件中
log4j.rootLogger=debug, stdout
#设置为debug,表示只能打印出debug级别的信息
log4j.logger.debug=debug, R
#设置成info,表示只能打印出info级别的信息
log4j.logger.info=info,s
#设置成error,表示只能打印出error级别的信息
log4j.logger.error = error,k
#输出debug级别以上的信息到控制台
og4j.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=(%F:%L) - %m%d%n
打印debug级别的信息到debugInfo.log
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=c:/webapps/debugInfo.log
log4j.appender.R.DatePattern='.'yyyy-MM-dd'.txt'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d [%F:%L] - %m \r\n
#打印info级别的信息到info.log
log4j.appender.s=org.apache.log4j.RollingFileAppender
log4j.appender.s.File= c:/webapps/info.log
# Control the maximum log file size
log4j.appender.s.MaxFileSize=100KB
# Archive log files (one backup file here)
log4j.appender.s.MaxBackupIndex=1
log4j.appender.s.layout=org.apache.log4j.PatternLayout
log4j.appender.s.layout.ConversionPattern=%p %t %c - %m%d%n
#打印error级别的信息到errorInfo.log中
log4j.appender.k=org.apache.log4j.DailyRollingFileAppender
log4j.appender.k.File=C:/Program Files/Apache Tomcat 4.0/webapps/PSA/log/error_8080.log
//log4j.appender.R.Append = true
log4j.appender.k.DatePattern='.'yyyy-MM-dd'.txt'
log4j.appender.k.layout=org.apache.log4j.PatternLayout
log4j.appender.k.layout.ConversionPattern=%d [%F:%L] - %m \r\n
5、在类中的的设置如下:
class类中如下:
static Logger debugLog=new Logger.getLogger("debug")
static Logger infoLog=new Logger.getLogger("info")
static Logger errorLog=new Logger.getLogger("error")
这样不同级别的log信息就可以打在不同的log文件中.
例如debugLog.debug(“”);就打印到上面的debuginfo中。
InfoLog.info(“”);就打印到上面的infoLog中。
qjhaaaaa
2003-06-14
打赏
举报
回复
1、首先将log4j-1.2.8.jar包含入类路径中。
2、Log4J必须在应用的其它代码执行前完成初始化。其初始化内容如下:
import java.io.*;
import javax.servlet.*;
import org.apache.log4j.*;
public class Log4JInit extends HttpServlet {
public void init() throws ServletException {
String prefix = getServletContext().getRealPath("/");
String file = getServletConfig().getInitParameter("log4j-config-file");
// 从Servlet参数读取log4j的配置文件
if (file != null) {
PropertyConfigurator.configure(prefix + file);
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws
IOException, ServletException {}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws
IOException, ServletException {}
}
3、web.xml内容配置如下:具体的文件放在 路径:\webapps\项目名称\WEB-INF\web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>log4jinit</servlet-name>
<servlet-class>com.iss.common.util.Log4JInit</servlet-class>//这里换换成具体的初始化文件包
<init-param>
<param-name>log4j-config-file</param-name>
<param-value>WEB-INF\log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Establish the default list of welcome files -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/FileNoFound.jsp</location>
</error-page>
</web-app>
注意:上面的load-on-startup应设为1,以便在Web容器启动时即装入该Servlet。log4j.properties文件放在根的properties子目录中,也可以把它放在其它目录中。应该把.properties文件集中存放,这样方便管理。
4、log4j.properties的配置,具体的路径在\webapps\项目名称\WEB-INF\log4j.properties
在配置文件中即log4j.properties中这样设置:
#设置成根目录,所有包括debug以上级别的信息都打印出来到日志文件中
log4j.rootLogger=debug, stdout
#设置为debug,表示只能打印出debug级别的信息
log4j.logger.debug=debug, R
#设置成info,表示只能打印出info级别的信息
log4j.logger.info=info,s
#设置成error,表示只能打印出error级别的信息
log4j.logger.error = error,k
#输出debug级别以上的信息到控制台
og4j.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=(%F:%L) - %m%d%n
打印debug级别的信息到debugInfo.log
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=c:/webapps/debugInfo.log
log4j.appender.R.DatePattern='.'yyyy-MM-dd'.txt'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d [%F:%L] - %m \r\n
#打印info级别的信息到info.log
log4j.appender.s=org.apache.log4j.RollingFileAppender
log4j.appender.s.File= c:/webapps/info.log
# Control the maximum log file size
log4j.appender.s.MaxFileSize=100KB
# Archive log files (one backup file here)
log4j.appender.s.MaxBackupIndex=1
log4j.appender.s.layout=org.apache.log4j.PatternLayout
log4j.appender.s.layout.ConversionPattern=%p %t %c - %m%d%n
#打印error级别的信息到errorInfo.log中
log4j.appender.k=org.apache.log4j.DailyRollingFileAppender
log4j.appender.k.File=C:/Program Files/Apache Tomcat 4.0/webapps/PSA/log/error_8080.log
//log4j.appender.R.Append = true
log4j.appender.k.DatePattern='.'yyyy-MM-dd'.txt'
log4j.appender.k.layout=org.apache.log4j.PatternLayout
log4j.appender.k.layout.ConversionPattern=%d [%F:%L] - %m \r\n
5、在类中的的设置如下:
class类中如下:
static Logger debugLog=new Logger.getLogger("debug")
static Logger infoLog=new Logger.getLogger("info")
static Logger errorLog=new Logger.getLogger("error")
这样不同级别的log信息就可以打在不同的log文件中.
例如debugLog.debug(“”);就打印到上面的debuginfo中。
InfoLog.info(“”);就打印到上面的infoLog中。
tusm
2003-06-14
打赏
举报
回复
在配置文件中这样写:
log4j.logger.debug=debug,debugFile
log4j.logger.info=info,infoFile
log4j.logger.error=error,errorFile
logger后面的debug,info,error为标示符,在class文件中用到.
log4j.appender.debugFile.File=C:/log/debugFile.log
log4j.appender.debugFile.Append = true
log4j.appender.debugFile.DatePattern='.'yyyy-MM-dd'.txt'
log4j.appender.debugFile.layout=org.apache.log4j.PatternLayout
log4j.appender.debugFile.layout.ConversionPattern=%d [%F:%L] - %m \r\n
其它两个文件同样的配置.
class类中如下:
static Logger debugLog=new Logger.getLogger("debug")
static Logger infoLog=new Logger.getLogger("info")
static Logger errorLog=new Logger.getLogger("error")
这样不同级别的log信息就可以打在不同的log文件中.
charbee
2003-05-17
打赏
举报
回复
use xml config file can fix your problem.
xml config file has a filter element for it.
Zhakrin
2003-05-17
打赏
举报
回复
用Additivity=false.
wbw88
2003-05-13
打赏
举报
回复
up
shi_yingbo
2003-04-25
打赏
举报
回复
up
DavidBone
2003-04-21
打赏
举报
回复
ding
DavidBone
2003-04-20
打赏
举报
回复
up
shihb
2003-03-21
打赏
举报
回复
当然可以啦,只要配置一下config文件。
bradwoo8621
2003-03-21
打赏
举报
回复
log4j.rootCategory=DEBUG, R, P
log4j.appender.R=org.log4j.RollingFileAppender
log4j.appender.R.File=E:/log/debug.log
log4j.appender.R.MaxFileSize=500KB
log4j.appender.P=org.log4j.RollingFileAppender
log4j.appender.P.File=E:/log/error.log
log4j.appender.P.MaxFileSize=500KB
想这样定义两个的话, 不管输入什么日志信息, 都会同时写到两个文件中.
我想要的结果是logger.debug()输出到debug.log, 而logger.error()输出到error.log, 这样可以吗?
puppy_lu
2003-03-21
打赏
举报
回复
比如说定义Debug
在配置文件里面:
log4j.rootCategory=DEBUG, R
log4j.appender.R=org.log4j.RollingFileAppender
log4j.appender.R.File=E:/log/debug.log
log4j.appender.R.MaxFileSize=500KB
flyycyu
2003-03-21
打赏
举报
回复
up
日志框架
log4j
升级至
log4j
2
大家好,我是默语,擅长全栈开发、运维和人工智能技术。在这篇博客中,我将详细介绍如何将日志框架从
Log4j
升级到
Log4j
2,确保在项目中实现更高效、更安全的日志管理。关键词:
Log4j
2升级、日志框架、Java日志、SLF4J、
Log4j
2配置。升级步骤具体操作删除
Log4j
核心包注释
Log4j
依赖,并排除第三方包引入的
Log4j
引入
Log4j
2和SLF4J桥接包添加
Log4j
2核心包和SLF4J与
Log4j
2的桥接包修改日志打印代码使用SLF4J的LoggerFactory进行日志打印。
log4j
2模板,
log4j
模板,
log4j
相关属性
文章目录1.
log4j
2模板1.1 `pom.xml`依赖1.2 `
log4j
2.xml`配置文件1.3 java中使用2.
log4j
模板2.1 `pom.xml`依赖2.2 `
log4j
.properties` 源配置2.3 `
log4j
.properties` 配置解释【***】2.4 java中使用学习参考地址 1.
log4j
2模板 1.1 pom.xml依赖 <dependency> <groupId>org.apache.logging.
log4j
&l
log4j
与
log4j
2性能对比及
log4j
升级至
log4j
2方案
1.前言 之前某个服务在压测环境中出现了问题,分析之后得知是
log4j
Logger对象争用厉害,很多线程阻塞在此。 以上问题证明
log4j
在高并发高QPS情况下,是存在性能问题的。 之后把
log4j
升级成了
log4j
2,并采取异步日志模式,解决了因日志造成的性能问题。 2.性能对比 关于
log4j
与
log4j
2的性能对比文章有很多,本文不过多描述,给出几张结论图及原文链接,作为参考...
八十六、
Log4j
与
Log4j
2 你真的明白了吗?
一个完整的软件,日志是必不可少的。程序从开发、测试、维护、运行等环节,都需要向控制台或文件等位置输出大量信息。这些信息的输出, 在很多时候是使用System.out.println()无法完成的。 日志信息根据用途与记录内容的不同,分为调试日志、运行日志、异常日志等。用于日志记录的技术很多,如 jdk 的 logger 技术,apache 的
log4j
、
log4j
2 技术等。
Log4j
的全称为 Log for java,即,专门用于 java 语言的日志记录工具。其目前有两个版本:
Log4j
与.
log4j
和
log4j
2配置详解
文章目录1
log4j
或
log4j
2配置详解1.1 pom.xml文件1.2
log4j
.properties的引用1.3
log4j
.properties的说明1.3.1 rootLogger文件1.3.2 输出目的地appender文件1.3.2.1 ConsoleAppender1.3.2.2 FileAppender1.3.2.3 DailyRollingFileAppender1.3.2...
Java
51,408
社区成员
86,094
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章