詳解Log4j 日志文件存放位置設(shè)置
以DailyRollingFileAppender 為例:假設(shè)每天一個日志文件
有以下設(shè)置:
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
經(jīng)過自己測試,無法找到app.log文件
如要將日志文件保存在 :根目錄/web-info/logs/下,個人有以下4種解決方案:
1 絕對路徑
log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/項(xiàng)目/WEB-INF/logs/app.log
但這種寫法靈活性很差
以下3中使用相同的設(shè)置原理: jvm的環(huán)境變量
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
備注:
1、spring配置變了webAppRootKey是不能變的,值可以隨意寫。
2、log文件存放在tomcat工程目錄/webapp(工程名稱)/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 自己設(shè)置目錄,也就是在項(xiàng)目啟動時(shí)通過System.setProperty設(shè)置,通過實(shí)現(xiàn)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 來解決。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring 使用JavaConfig實(shí)現(xiàn)配置的方法步驟
這篇文章主要介紹了Spring 使用JavaConfig實(shí)現(xiàn)配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Java的動態(tài)代理和靜態(tài)代理及反射常用API詳解
這篇文章主要介紹了Java的動態(tài)代理和靜態(tài)代理及反射常用API詳解,動態(tài)代理是一種在運(yùn)行時(shí)動態(tài)生成代理對象的技術(shù),它是一種設(shè)計(jì)模式,用于在不修改原始對象的情況下,通過代理對象來間接訪問原始對象,并在訪問前后執(zhí)行額外的操作,需要的朋友可以參考下2024-01-01SpringBoot整合EasyExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能
EasyExcel是一個基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,他能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成Excel的讀、寫等功能,本文就給大家介紹一下SpringBoot整合EasyExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能的方法,需要的朋友可以參考下2023-09-09