log4j.rootLogger=info, stdout, R
# Use this instead for debugging:
# log4j.rootLogger=trace, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %p %c[%t] - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=ebxmlrr.log
log4j.appender.R.MaxFileSize=1MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{ISO8601} %p %c[%t] - %m%n
# Use this instead for debugging:
# log4j.rootLogger=trace, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %p %c[%t] - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=ebxmlrr.log
log4j.appender.R.MaxFileSize=1MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{ISO8601} %p %c[%t] - %m%n
#log4j.rootLogger = debug, A1, A2,A3
#log4j.rootLogger = debug,A2#2 定义A1输出到控制器log4j.appender.A1 = org.apache.log4j.ConsoleAppender
#3 定义A1的布局模式为PatternLayoutlog4j.appender.A1.layout = org.apache.log4j.PatternLayout
#4 定义A1的输出格式log4j.appender.A1.layout.ConversionPattern = %-4r [%t] %-5p %c - %m%n#5 定义A2输出到文件
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
#6 定义A2要输出到哪一个文件
log4j.appender.A2.File =D:\\log4j.log
#7 定义A2的输出文件的最大长度
log4j.appender.A2.MaxFileSize = 1000KB
#8 定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex = 1
#9 定义A2的布局模式为PatternLayout
log4j.appender.A2.layout = org.apache.log4j.PatternLayout
#10 定义A2的输出格式
#log4j.appender.A2.layout.ConversionPattern = %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n
log4j.appender.A2.layout.ConversionPattern = %t :%-5p :%c :%m%n#11区 定义A3输出到数据库#log4j.appender.A3 =org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.A3.bufferSize =1#log4j.appender.A3.driver =oracle.jdbc.OracleDriver
#log4j.appender.A3.URL=jdbc:oracle:thin:@temp:1521:test#log4j.appender.A3.URL=jdbc:oracle:oci8:@test
#log4j.appender.A3.user =user
#log4j.appender.A3.password =1234
#log4j.appender.A3.sql = INSERT INTO T_LOG (createDate, thread, priority, category, message) values(sysdate, '%t', '%-5p', '%c', '%m%n')
#log4j.appender.A3.layout = org.apache.log4j.PatternLayout
#log4j.appender.A3.layout.ConversionPattern = INSERT INTO T_LOG (createDate, thread, priority, category, message) values(sysdate, '%t', '%-5p', '%c', '%m')
#log4j.appender.A3.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#log4j.appender.A3.layout.ConversionPattern=INSERT INTO T_LOG (createDate, thread, priority, category, message) values(sysdate, '', '%p', '%c', '%m%n')
这样应该是文件到1m才会生成吧,
我想一有log信息就立即生成文件。
log4j.appender.R.MaxBackupIndex=10 定义可以最多保存10个文件.
要实现这个功能,必须用xml形式的配置文件
如下,就可以实现!<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration > <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%c %d{ISO8601}
-- %p -- %m%n"/>
</layout>
</appender> <appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="E:\\java_study\\MIS\\MIS\\WEB-INF\\log\\MIS_DEBUG.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="500KB"/>
<param name="MaxBackupIndex" value="2"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%c %d{ISO8601}
-- %p -- %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender> <appender name="INFO" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="E:\\java_study\\MIS\\MIS\\WEB-INF\\log\\MIS_INFO.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="500KB"/>
<param name="MaxBackupIndex" value="2"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%c %d{ISO8601}
-- %p -- %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<appender name="WARN" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="E:\\java_study\\MIS\\MIS\\WEB-INF\\log\\MIS.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="500KB"/>
<param name="MaxBackupIndex" value="2"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%c %d{ISO8601}
-- %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="ERROR" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="E:\\java_study\\MIS\\MIS\\WEB-INF\\log\\MIS_ERROR.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="500KB"/>
<param name="MaxBackupIndex" value="2"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%c %d{ISO8601}
-- %p -- %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<root>
<priority value="debug"/>
<!--appender-ref ref="STDOUT"/-->
<appender-ref ref="DEBUG"/>
<appender-ref ref="INFO"/>
<appender-ref ref="WARN"/>
<appender-ref ref="ERROR"/>
</root></log4j:configuration>
写好log4j.properties文件后,将该属性文件放在你能调用到的地方,比如 \WEB-INF 下面即可,然后写一个servlet以便在应用服务器启动时加载它,并且在web.xml中配置好,如:web.xml
--------------------------------------------------------------------------
<servlet>
<servlet-name>InitLog4j</servlet-name>
<servlet-class>com.test.init.Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
-----------------------------------------------------------
servlet Log4jInit 如:import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.*;
public class Log4jInit extends HttpServlet {
public void init() throws ServletException {
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j");
// if the log4j-init-file is not set, then no point in trying
System.out.println("................log4j start");
if(file != null) {
PropertyConfigurator.configure(prefix+file);
}
}
public void doGet(HttpServletRequest req, HttpServletResponse res) {
}
}
log4j.properties在classes根目录下,log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=ebxmlrr.log像这样写,ebxmlrr.log应该在哪个目录下生成,是在classes下嘛,还是web-inf下,
我找不到啊。
要实现这个功能,必须用xml形式的配置文件
============================================
这个说法不对,要实现这个功能不是只有xml配置文件才能实现,在log4j中如果要使用Filter功能,才只能用xml配置文件才能实现,如果用properties属性文件是不能实现的,但是这里的楼主所希望的功能,两种形式的配置文件都可以,以上朋友已经说出了具体的实现了,我就不多说了,只是纠正一个问题,以免楼主理解错误。
我怎么找也找不到???