导航:首页 > 版本升级 > log4j自定义输出文件

log4j自定义输出文件

发布时间:2023-07-21 04:47:21

❶ log4j2怎么输出日志到文件

、前提条件 系统必须使用LOG4J进行志管理否则效 系统必须包含mons-logging-xxx.jarlog4j-xxx.jar两JAR包XXX版本号 二、操作步骤 1、创建志表 要志持久化必须数据库创建张用存储志信息表表内字段志 主要属性包括:操作类执行打印间志级别志内容 CREATE TABLE RESLOG (LOGID VARCHAR2(20) NOT NULL, CLASS VARCHAR2(200), METHOD VARCHAR2(100), CREATETIME DATE, LOGLEVEL VARCHAR2(50), MSG VARCHAR2(4000)) 存储类类全部路径所CLASS字段度需要比较 2、志管理配置 LOG4J主要两种配置文件.properties.xmlproperties文件基础讲 述关于XML文件配置相信家看完面介绍能轻松完 通LOG4J.PROPERTIES文件第行: log4j.rootLogger= XXX句控制志输想吧志输数据库 则需要XXX添加DBlog4j.rootLogger=INFO,stdout,Platform,db面 句志级别INFO信息输STDOUT,PLATFORMDB (DATABASE) 配置信息LOG4J知道用户想信息存入数据库接我要 配置数据库相关信息(包括缓存数据库连接信息执行SQL)配置信息: ###JDBCAppender log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender //配置选择使用JDBCAppender志信息存储数据库要做其操作自写类继承JDBCAppenderOK log4j.appender.db.BufferSize=1 //配置告诉LOG4J条志信息才存入数据库我1,说条查条显产环境影响系统性能 log4j.appender.db.driver=oracle.jdbc.driver.OracleDriver //配置告诉LOG4J做数据库存储所用驱 log4j.appender.db.URL=jdbc:oracle:thin:@:: //配置数据库连接URL用说都知道 log4j.appender.db.user=XXX log4j.appender.db.password=XXX //面两数据库连接用户名密码 log4j.appender.db.sql=insert into RESLOG (LogId,Class,Method,createTime,LogLevel,MSG) values (SQ_RESLOG_LOGID.Nextval,'%C','%M', to_date('%d{yyyy-MM-dd HH:mm:ss}','yyyy-MM-dd HH24:mi:ss'),'%p','%m') //配置告诉LOG4J吧志存储数据库用SQL语句SQ_RESLOG_LOGID.Nextval我建SEQUENCE;‘%C’志CLASS;‘%M’打印志执行类;‘%d’打印间支持格式化;‘%P’志级别包括INFO、DEBUG、ERROR等;‘%m’MSG志内容注意参数区写 log4j.appender.db.layout=org.apache.log4j.PatternLayout 通面配置现再启服务LOG4J自原存储.LOG文件信息同存储数据库

❷ 用java 代码实现log4j的日志输出功能

写一个log4j的properties文件,再在web.xml里面配置一下就ok了,你参考下吧
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]-%-5p %t (%C.%M:%L) | %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=e:/Logs/PB/root.log
log4j.appender.file.MaxFileSize=5000KB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d]-%-5p %t | %m%n

log4j.logger.java.sql = DEBUG,ibatis
log4j.additivity.java.sql=false
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG

log4j.logger.com.ibatis = DEBUG,ibatis
log4j.additivity.com.ibatis=false
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG
log4j.logger.com.ibatis.sqlmap.engine.cache.CacheModel=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientImpl=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.builder.xml.SqlMapParser=DEBUG
log4j.logger.com.ibatis.common.util.StopWatch=DEBUG

log4j.appender.ibatis=org.apache.log4j.RollingFileAppender
log4j.appender.ibatis.File=e:/Logs/PB/ibatis.log
log4j.appender.ibatis.MaxFileSize=5000KB
log4j.appender.ibatis.MaxBackupIndex=5
log4j.appender.ibatis.Threshold=DEBUG
log4j.appender.ibatis.layout=org.apache.log4j.PatternLayout
log4j.appender.ibatis.layout.ConversionPattern=[%d]%m%n

log4j.rootLogger=DEBUG,stdout,file
log4j.logger.org.springframework=INFO
log4j.logger.org.displaytag=INFO
log4j.logger.freemarker=INFO
log4j.logger.com.opensymphony.xwork2=INFO
log4j.logger.com.pracbiz=DEBUG

❸ 在做java web开发的时候 怎么让log4j日志输出 到文件里

配置文件:
log4j.rootLogger = DEBUG,fileAppender
log4j.appender.fileAppender = org.apache.log4j.FileAppender
log4J.appedner.fileAppender.File = mylog.log

FileAppender 选项
Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.log:指定消息输出到mylog.log文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。

❹ 如何使用log4j输出单个级别的log到指定文件

这种情况下,就需要debug、info、warn、error分别进行配置了。之后通过priority属性控制日志实际输出级别就可以。

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPElog4j:configurationPUBLIC"-//LOGGER""log4j.dtd">
<log4j:configurationxmlns:log4j="http://jakarta.apache.org/log4j/">
<!--Appenders-->
<appendername="console"class="org.apache.log4j.ConsoleAppender">
<paramname="Target"value="System.out"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%-d{yyyy-MM-ddHH:mm:ss,SSS}||||%p||||%m%n"/>
</layout>
</appender>
<!--输出debug日志-->
<appendername="debug.log"class="org.apache.log4j.DailyRollingFileAppender">
<paramname="File"value="d:/tmrpt/log/debug.log"/>
<paramname="Append"value="true"/>
<paramname="encoding"value="UTF-8"/>
<paramname="DatePattern"value="yyyyMMddHH"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%-d{yyyy-MM-ddHH:mm:ss,SSS}[%p][%c]-%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="levelMin"value="debug"/>
<paramname="levelMax"value="debug"/>
<paramname="AcceptOnMatch"value="true"/>
</filter>
</appender>
<!--输出info日志-->
<appendername="info.log"class="org.apache.log4j.DailyRollingFileAppender">
<paramname="File"value="d:/tmrpt/log/info.log"/>
<paramname="Append"value="true"/>
<paramname="encoding"value="UTF-8"/>
<paramname="DatePattern"value="yyyyMMddHH"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%-d{yyyy-MM-ddHH:mm:ss,SSS}[%p][%c]-%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="levelMin"value="info"/>
<paramname="levelMax"value="info"/>
<paramname="AcceptOnMatch"value="true"/>
</filter>
</appender>

<!--输出warn日志-->
<appendername="warn.log"class="org.apache.log4j.DailyRollingFileAppender">
<paramname="File"value="d:/tmrpt/log/warn.log"/>
<paramname="Append"value="true"/>
<paramname="encoding"value="UTF-8"/>
<paramname="DatePattern"value="yyyyMMddHH"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%-d{yyyy-MM-ddHH:mm:ss,SSS}[%p][%c]-%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="levelMin"value="warn"/>
<paramname="levelMax"value="warn"/>
<paramname="AcceptOnMatch"value="true"/>
</filter>
</appender>

<!--输出error日志-->
<appendername="error.log"class="org.apache.log4j.DailyRollingFileAppender">
<paramname="File"value="d:/tmrpt/log/error.log"/>
<paramname="Append"value="true"/>
<paramname="encoding"value="UTF-8"/>
<paramname="DatePattern"value="yyyyMMddHH"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%-d{yyyy-MM-ddHH:mm:ss,SSS}[%p][%c]-%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="levelMin"value="error"/>
<paramname="levelMax"value="error"/>
<paramname="AcceptOnMatch"value="true"/>
</filter>
</appender>

<!--RootLogger-->
<root>
<!--priority配置输出日志级别-->
<priorityvalue="info"/>
<appender-refref="console"></appender-ref>
<appender-refref="info.log"/>
<appender-refref="debug.log"/>
<appender-refref="warn.log"/>
<appender-refref="error.log"/>
</root>
</log4j:configuration>

❺ log4j怎么配置日志输出路径

以DailyRollingFileAppender 为例:假设每天一个日志文件
有以下设置:

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=app.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p - %c -%-4r [%t] - %m%n

此时生成日志文件将位于tomcat的bin目录下,如要将日志文件保存在 :根目录/web-info/logs/下,个人有以下4种解决方案:
1 绝对路径
log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/项目/WEB-INF/logs/app.log
但这种写法灵活性很差

以下3中使用相同的设置原理: jvm的环境变量
2:spring的Log4jConfigListener
通过以下配置:
< context-param>
<param-name>webAppRootKey</param-name>
<param-value>webApp.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
< listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
...
log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/app.log
...
来解决
2:使用已有jvm变量:
例如:
log4j.appender.logfile.File=${user.home}/logs/app.log
日志将位于:例如windows:C:\Documents and Settings\joe\logs\app.log

3 自己设置目录,也就是在项目启动时通过System.setProperty设置
通过实现ServletContextListener来解决:例如

public class log4jlistener implements ServletContextListener {
public static final String log4jdirkey = "log4jdir";
public void contextDestroyed(ServletContextEvent servletcontextevent) {
System.getProperties().remove(log4jdirkey);
}
public void contextInitialized(ServletContextEvent servletcontextevent) {
String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
//System.out.println("log4jdir:"+log4jdir);
System.setProperty(log4jdirkey, log4jdir);
}
}
web.xml配置:

<listener>
<listener-class>com.log4j.log4jlistener</listener-class>
</listener>

log4j.prtperties 配置:
log4j.appender.A1.File=${log4jdir}/WEB-INF/logs/app1.log
来解决。

❻ java工程中如何使用log4j输出指定路径日志文件,是java工程,不是web工程,谢谢

此文档放在项目编译文件.class相同的位置
### set log levels ###log4j.rootLogger = debug , stdout , D### 输出到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n### 输出到日志文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 保存异常信息到单独文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = logs/error.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = ERRORlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
配置获取方法:
PropertyConfigurator.configure( "D:\\Project Files\\myeclipse\\commontest\\bin\\log\\log4j\\log4j.properties" );
Logger log=Logger. getLogger(TestLog4j.class);
log.warn( "嘿嘿");
log.debug( "呜呜");
log.error( "错啦");

❼ Java中怎么将log4j日志文件导出为一个txt的文件

log4j.properties的基本配置如下

### set log levels ###
log4j.rootLogger = debug , D , E

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log //保存成你想要的文件txt

log4j.appender.D.DatePattern = '.'yyyy-MM-dd
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO
## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

❽ log4j怎么把某个类中的日志单独输出到一个文件

1、输出两次是因为你的mylog配置有误:log4j.appender.myLog.Target=System.out,你应该是要改成一个输出到一个文件吧,控制台已经有输出了。 2、类名问题: private static Logger log = Logger.getLogger("myLog"); 这种写法也可以

阅读全文

与log4j自定义输出文件相关的资料

热点内容
有哪些app可以接游戏订单 浏览:472
苹果硬盘数据恢复要多少钱 浏览:394
js绑定下拉框数据库数据 浏览:448
cad文件怎么复制到另一个文件里边 浏览:858
dxp钻孔文件 浏览:631
iphone大悦城换机 浏览:538
找结婚对象上什么网站 浏览:974
学生信息管理系统程序设计报告 浏览:640
微信文件怎么删除怎么恢复 浏览:407
编程程序怎么复制 浏览:467
文件更改 浏览:327
冰点文件路径 浏览:730
软件一点开文件就关闭 浏览:88
网络如何把人捧红 浏览:961
软件传输文件 浏览:184
密码记录器ios 浏览:412
两个电脑数据怎么一样 浏览:829
顺丰有什么买东西的app 浏览:377
数位板word 浏览:939
win7宽带连接出现多重网络 浏览:268

友情链接