jsp打印日志完整配置

举报
风吹稻花香 发表于 2021/06/05 01:22:56 2021/06/05
【摘要】 有的需要用:${catalina.base}/logs   src\log\log4j.properties   本配置文件设置了两种日志记录方式,ca代表控制台,drfa代表文本文件,该名称为:lin-error-log.txt,只显示级别为ERROR以上的日志信息。关于这些配置参数,网上很多都有说明,这里仅用了最为常用的参数。...



有的需要用:${catalina.base}/logs

 

src\log\log4j.properties

 

本配置文件设置了两种日志记录方式,ca代表控制台,drfa代表文本文件,该名称为:lin-error-log.txt,只显示级别为ERROR以上的日志信息。关于这些配置参数,网上很多都有说明,这里仅用了最为常用的参数。

 

文件内容:

 

log4j.rootLogger=DEBUG, ca, file

 

log4j.appender.ca=org.apache.log4j.ConsoleAppender

log4j.appender.ca.layout=org.apache.log4j.PatternLayout

log4j.appender.ca.layout.ConversionPattern=%-5p (%F:%L) # %m%n

 

# 设定输出位置,此处设定tomcat目录的logs下,文件名为projectLogs.log。

log4j.appender.file=org.apache.log4j.RollingFileAppender 

log4j.appender.file.File=${catalina.home}/logs/project_Logs.log

log4j.appender.file.MaxFileSize=1024KB

#org.apache.log4j.DailyRollingFileAppender

log4j.appender.file.Append=true

log4j.appender.file.Threshold = ERROR

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c # %m%n

 

java类:

 

 

package net.jeeshop.core.util;

 

import java.net.URISyntaxException;

 

import org.apache.log4j.Level;

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;

 

/**

 * 自定义的日志记录类,使用Java的properties文件形式配置Log4j,

 * 使用本类的同时还需要一个properties的配置文件,用于配置Log4j的参数

 * @author linyiteng

 */

public class LinLog{

    

    static Logger logger;

 

    /**

     * 构造方法,对一些基本参数进行设置

     * @param className        Log4j的实例名称,一般都使用当前操作类的类名,比如一个Test类,就应该设置为:Test.class.getName()

     * @param folder        配置文件(.properties)的所在目录

     * @param file            配置文件(.properties)的文件名

     * @param level            日志记录的级别,1代表DEBUG,2代表INFO,3代表WARN,4代表ERROR,5代表FATAL,其它数字代表ALL,

     *                         一般代码调试时设置为1,系统上线后设置为3

     */

 

    public LinLog(Stringstring,int level) {

// TODO Auto-generated constructor stub

          

          String path = null;

try {

path = this.getClass().getClassLoader().getResource("").toURI().getPath();

} catch (URISyntaxExceptione) {

// TODO Auto-generated catch block

e.printStackTrace();

}

       //web获取路径:

         path= path.substring(1).replace("/", "/") ;

          PropertyConfigurator.configure(path +"log4j.properties");

          setLevel(level);

}

 

    

    /**

     * 设置日志记录的显示级别

     * @param level         显示级别,在1-5的范围内,级别越高,表明显示的错误级别越严重,显示的日志记录数越少

     */

    private static void setLevel(int level){

        switch(level){

        case 1:

            logger.setLevel(Level.DEBUG);

            break;

        case 2:

            logger.setLevel(Level.INFO);

            break;

        case 3:

            logger.setLevel(Level.WARN);

            break;

        case 4:

            logger.setLevel(Level.ERROR);

            break;

        case 5:

            logger.setLevel(Level.FATAL);

            break;

        default:

            logger.setLevel(Level.ALL);

        }

    }

    

    /**

     * 显示日志记录的开始标志

     */

    public static void start(){

      getlogger().fatal("-----------------------   START   -----------------------");

    }

    

    /**

     * 显示日志记录的结束标志,同时加上两个换行

     */

    public static void end(){

      getlogger().fatal("-----------------------    END    ----------------------- ");

    }

    

    /**

     * 返回一个Log4j的实例对象,非常重要的方法,在调用debug()等记录方法之前须先调用,如this.yiteng().debug("记录内容");

     * @return        当前创建的logger对象

     */

    public static void error(Objectobj){

         getlogger().error(obj);

    }

    public static Logger getlogger(){

    

     if(logger==null){

     logger= Logger.getLogger(LinLog.class);

    

      String path = LinLog.class.getClassLoader().getResource("/").getPath();

          //web获取路径:

             path = LinLog.class.getClassLoader().getResource("/").getPath();

            path= path.substring(1).replace("/", "/") + "/";

             PropertyConfigurator.configure(path +"log4j.properties");

             setLevel(4);

     }

        return logger;

    }

    public static void main(String[]args) {

        

        LinLog.start();

        LinLog.getlogger().debug("The level of message is DEBUG");

        LinLog.getlogger().info("The level of message is INFO");

        LinLog.getlogger().warn("The level of message is WARN");

        LinLog.getlogger().error("The level of message is ERROR");

        LinLog.getlogger().fatal("The level of message is FATAL");

        LinLog.end();

    }

}

 

 

web.xml配置路径:

 

<context-param>

<param-name>log4jConfigLocation</param-name>

<param-value>/WEB-INF/classes/log/log4j.properties</param-value>

</context-param>

 

 

\src\log4j.properties

 

log4j.rootLogger=ERROR, Console,file

 

#Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender 

log4j.appender.Console.layout=org.apache.log4j.PatternLayout 

log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n 

 

###DEBUG,ERROR

log4j.logger.java.sql.ResultSet=ERROR

log4j.logger.org.apache=ERROR

###DEBUG,ERROR

log4j.logger.java.sql.Connection=ERROR

 

log4j.logger.java.sql.Statement=ERROR 

log4j.logger.java.sql.PreparedStatement=ERROR 

 

# \u8BBE\u5B9A\u8F93\u51FA\u4F4D\u7F6E\uFF0C\u6B64\u5904\u8BBE\u5B9Atomcat\u76EE\u5F55\u7684logs\u4E0B,\u6587\u4EF6\u540D\u4E3AprojectLogs.log\u3002

log4j.appender.file=org.apache.log4j.RollingFileAppender 

log4j.appender.file.File=${catalina.home}/logs/project_Logs.log

log4j.appender.file.MaxFileSize=10240KB

#org.apache.log4j.DailyRollingFileAppender

log4j.appender.file.Append=true

log4j.appender.file.Threshold = ERROR

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c # %m%n

 


文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/54485936

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。