❶ 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.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[%d]-%-5p %t (%C.%M:%L) | %m%nlog4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=e:/Logs/PB/root.loglog4j.appender.file.MaxFileSize=5000KBlog4j.appender.file.MaxBackupIndex=5log4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=[%d]-%-5p %t | %m%nlog4j.logger.java.sql = DEBUG,ibatislog4j.additivity.java.sql=falselog4j.logger.java.sql.Connection = DEBUG log4j.logger.java.sql.Statement = DEBUGlog4j.logger.java.sql.PreparedStatement = DEBUGlog4j.logger.java.sql.ResultSet = DEBUGlog4j.logger.com.ibatis = DEBUG,ibatislog4j.additivity.com.ibatis=falselog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUGlog4j.logger.com.ibatis.sqlmap.engine.cache.CacheModel=DEBUGlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientImpl=DEBUGlog4j.logger.com.ibatis.sqlmap.engine.builder.xml.SqlMapParser=DEBUGlog4j.logger.com.ibatis.common.util.StopWatch=DEBUGlog4j.appender.ibatis=org.apache.log4j.RollingFileAppenderlog4j.appender.ibatis.File=e:/Logs/PB/ibatis.loglog4j.appender.ibatis.MaxFileSize=5000KBlog4j.appender.ibatis.MaxBackupIndex=5log4j.appender.ibatis.Threshold=DEBUGlog4j.appender.ibatis.layout=org.apache.log4j.PatternLayoutlog4j.appender.ibatis.layout.ConversionPattern=[%d]%m%nlog4j.rootLogger=DEBUG,stdout,filelog4j.logger.org.springframework=INFOlog4j.logger.org.displaytag=INFOlog4j.logger.freemarker=INFOlog4j.logger.com.opensymphony.xwork2=INFOlog4j.logger.com.pracbiz=DEBUG
❸ 在做java web开发的时候 怎么让log4j日志输出 到文件里
配置文件:log4j.rootLogger = DEBUG,fileAppenderlog4j.appender.fileAppender = org.apache.log4j.FileAppenderlog4J.appedner.fileAppender.File = mylog.logFileAppender 选项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.loglog4j.appender.A1.DatePattern='.'yyyy-MM-ddlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.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.log3 自己设置目录,也就是在项目启动时通过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.DailyRollingFileAppenderlog4j.appender.D.File = logs/log.log //保存成你想要的文件txtlog4j.appender.D.DatePattern = '.'yyyy-MM-dd log4j.appender.D.Append = truelog4j.appender.D.Threshold = INFO ## 输出DEBUG级别以上的日志log4j.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.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File = logs/error.loglog4j.appender.E.Append = truelog4j.appender.E.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!log4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.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"); 这种写法也可以