您的位置:首页 > 编程语言 > Java开发

修改配置原生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.启动就可以了,这一段看了网上的大多的都没有这么全面的,希望能帮到大家。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息