修改配置原生log4j,使得指定的类文件输出到指定的文件中(非Spring框架)
2018-03-08 16:15
543 查看
1.配置web.xml
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>1000</param-value>
</context-param>
<servlet>
<servlet-name>Log4JInitServlet</servlet-name>
<servlet-class>cn.com.conf.Log4JInitServlet</servlet-class>
<init-param>
<param-name>log4j-properties-location</param-name>
<param-value>/log4j.properties</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
2.增加log4j的java启动
@WebServlet("/Log4JInitServlet")
public class Log4JInitServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Log4JInitServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("===>Log4JInitServlet 正在初始化 log4j日志设置信息");
String log4jLocation = config.getInitParameter("log4j-properties-location");
ServletContext sc = config.getServletContext();
if (log4jLocation == null) {
System.err.println("===>因为没有 log4j-properties-location 初始化的文件, 所以使用 BasicConfigurator初始化");
BasicConfigurator.configure();
} else {
String webAppPath = sc.getRealPath("/");
String log4jProp = webAppPath + log4jLocation;
File yoMamaYesThisSaysYoMama = new File(log4jProp);
if (yoMamaYesThisSaysYoMama.exists()) {
System.out.println("===>使用: " + log4jProp+"初始化日志设置信息");
PropertyConfigurator.configure(log4jProp);
} else {
System.err.println("===> " + log4jProp + " 文件没有找到, 所以使用 BasicConfigurator初始化");
BasicConfigurator.configure();
}
}
super.init(config);
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
3.增加log4j.propertity(粘点重要的)
log4j.rootLogger =DEBUG,logfile
#log4j.addivity.org.apache=false
log4j.logger.*.*.*=DEBUG,test
log4j.additivity.*.*.*=false(很重要)
log4j.appender.test=org.apache.log4j.DailyRollingFileAppender
log4j.appender.test.File=(需要一个特定的路径)
log4j.appender.test.Threshold=DEBUG
log4j.appender.R.DatePattern =yyyyMMdd'.log
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
4.启动就可以了,这一段看了网上的大多的都没有这么全面的,希望能帮到大家。
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>1000</param-value>
</context-param>
<servlet>
<servlet-name>Log4JInitServlet</servlet-name>
<servlet-class>cn.com.conf.Log4JInitServlet</servlet-class>
<init-param>
<param-name>log4j-properties-location</param-name>
<param-value>/log4j.properties</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
2.增加log4j的java启动
@WebServlet("/Log4JInitServlet")
public class Log4JInitServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Log4JInitServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("===>Log4JInitServlet 正在初始化 log4j日志设置信息");
String log4jLocation = config.getInitParameter("log4j-properties-location");
ServletContext sc = config.getServletContext();
if (log4jLocation == null) {
System.err.println("===>因为没有 log4j-properties-location 初始化的文件, 所以使用 BasicConfigurator初始化");
BasicConfigurator.configure();
} else {
String webAppPath = sc.getRealPath("/");
String log4jProp = webAppPath + log4jLocation;
File yoMamaYesThisSaysYoMama = new File(log4jProp);
if (yoMamaYesThisSaysYoMama.exists()) {
System.out.println("===>使用: " + log4jProp+"初始化日志设置信息");
PropertyConfigurator.configure(log4jProp);
} else {
System.err.println("===> " + log4jProp + " 文件没有找到, 所以使用 BasicConfigurator初始化");
BasicConfigurator.configure();
}
}
super.init(config);
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
3.增加log4j.propertity(粘点重要的)
log4j.rootLogger =DEBUG,logfile
#log4j.addivity.org.apache=false
log4j.logger.*.*.*=DEBUG,test
log4j.additivity.*.*.*=false(很重要)
log4j.appender.test=org.apache.log4j.DailyRollingFileAppender
log4j.appender.test.File=(需要一个特定的路径)
log4j.appender.test.Threshold=DEBUG
log4j.appender.R.DatePattern =yyyyMMdd'.log
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
4.启动就可以了,这一段看了网上的大多的都没有这么全面的,希望能帮到大家。
相关文章推荐
- tomcat配置log4j打印输出日志到指定文件
- 关于log4j的配置,控制台打印和错误信息输出到指定文件
- log4j配置文件配置指定的包的信息输出到指定的文件中去
- log4j配置,对指定包进行DEBUG输出和输出日志文件到tomcat下logs目录
- log4j配置 输出到指定的文件
- Log4j 独立输出日志文件,以及不启动服务器修改配置生效的例子
- tomcat配置log4j输出日志从控制台改到指定文件
- tomcat配置log4j打印输出日志到指定文件
- 有效Log4j按指定级别定向输出日志到指定的输出文件地址配置Threshold,log4j中如何屏蔽父logger输出源rootlogger的additivity配置,log4j向多个文件记录日志
- log4j输出日志到指定文件并定时备份
- 【转】分享silverlight修改配置文件WEB.CONFIG指定服务器地址访问WCF
- log4j的properties详细配置,分级输出日志文件
- 修改文件输出目录后,提示配置错误(VS2010)
- log4j输出多个自定义日志文件,动态配置路径
- log4j.properties如何将输出的文件路径配置为相对路径?
- 修改Apache配置指定php配置文件php.ini的位置方法
- log4j的properties详细配置,分级输出日志文件
- 使用命令参数方式指定log4j配置文件
- log4j输出到指定日志文件
- log4j输出多个自定义日志文件,动态配置路径