zoukankan      html  css  js  c++  java
  • 2018.8.6 学习 log4j.properties 配置文件

    配置文件的话第一步当然是解决乱码问题

    Eclipse中properties文件中文乱码解决方式

    打开eclipse的properties文件时你会发现,其中部分中文注释乱码了,下面将写出如何设置properties的编码格式为正确的中文显示编码格式
        1.首先,   右键properties文件,点击   右键properties,你会看到默认的 编码格式为ISO-8859-1
        2.接下来我们把选择Other,选择编码格式为UTF-8,也有的说选择GB2312,这里没有,那我们就选择UTF-8,然后点击Apply——OK,中文显示乱码就可以解决了,很简单的,经历过一遍就会记住。
        3.重新复制粘贴一次就解决了,也不会影响项目里面的其他的中文注释乱码    有些同学可能会在其他地方修改,但是你会发现你项目里面的注释变成了乱码,虽然log4j的配置文件不是乱码,因小失大这样划不来。这是禅师过的最有效的方法了。欢迎大家来更正。
    
    
    end
    

    log4j.properties 配置文件的编写

    这是已经写好的 log4j.properties 文件 可直接拿来用,把下面这些代码复制进去保存就好了

    ### 设置###
    log4j.rootLogger = debug,stdout,D,E
    
    ### 输出信息到控制抬 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
    
    ### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = E://logs/log.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG 
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ### 输出ERROR 级别以上的日志到=E://logs/error.log ###
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File =E://logs/error.log 
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR 
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    

    使用 log4j.properties 配置文件

    1java程序中使用log4j】

    步骤
       1.1 导入jar包
               log4j-1.2.17.jar
    
       1.2 在src目录下创建log4j.properties文件  (记住是src下不是跟src同级目录)
              具体配置信息可以拷贝上面的
       1.3 在测试类中使用
    
          public class Test {
    	     private static Logger logger = Logger.getLogger(Test.class);  
                 public static void main(String[] args) {  
                 // System.out.println("This is println message.");  
                // 记录debug级别的信息  
                logger.debug("This is debug message.");  
               
                // 记录info级别的信息  
               logger.info("This is info message.");  
              
               // 记录error级别的信息  
               logger.error("This is error message.");  
        }  
    
    
    
    点击运行之后在对应的文件夹下打开发现一个乱码问题    
    

    写入文件乱码

    #配置输出到控制台编码
    log4j.appender.CONSOLE.charset=utf-8
    log4j.appender.CONSOLE.encoding=utf-8
    
    
    #配置输出到文件编码
    log4j.appender.A.Encoding=UTF-8
    

    2 javaweb中使用log4j

    2.1	导入jar包
            log4j-1.2.17.jar
    2.2	在src目录下创建log4j.properties文件
    
    
    2.3  创建Log4jServlet
    
    @WebServlet(
    		value = "/Log4jServlet",
    		initParams= {
    			@WebInitParam(name="log4j-init-file",value="WEB-INF\classes\log4j.properties")
    		},
    		loadOnStartup=1
    )
    public class Log4jServlet extends HttpServlet{
    	@Override
    	public void init() throws ServletException {
    		String prefix = getServletContext().getRealPath("/");
    		String file = getInitParameter("log4j-init-file");
    		System.out.println("文件路径:"+prefix+file);
    		if(file!=null) {
    			PropertyConfigurator.configure(prefix+file);
    		}
    	}
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	}
    	
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	}
    }
    
    
    
    2.4	在其它servlet使用
    	Logger logger = Logger.getLogger(this.getClass());
    
    // 记录debug级别的信息  
    logger.debug("This is debug message.");  
    // 记录info级别的信息  
    	logger.info("This is info message.");  
    	// 记录error级别的信息  
    logger.error("This is error message.");  
    
    

    3 javaweb使用log4j添加到数据库

    3.1	创建日志表
    CREATE TABLE LogInfo (
    	CreateTime varchar2(255),--产生时间
        Class varchar2(255)   NULL ,--类名
    	LogLevel varchar2(20)   NULL ,--日志级别
        Mothod varchar2(255)   NULL ,--方法名
        MSG varchar2(555)   NULL --日志信息
    );
    
    
    3.2 3.2	log4j.properties  文件
    
    ### 设置###
    log4j.rootLogger = debug,stdout,D,E,database
    
    ### 输出信息到控制抬 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
    
    ### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = E://logs/log.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG 
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ### 输出ERROR 级别以上的日志到=E://logs/error.log ###
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File =E://logs/error.log 
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR 
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ############ 输出到数据库logginfo表############
    log4j.appender.database.Threshold=info
    #定义什么级别的错误将写入到数据库中
    log4j.appender.database.BufferSize=1
    #设置缓存大小,就是当有1条日志信息时才往数据库插一次
    log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.database.driver=oracle.jdbc.OracleDriver
    #设置要将日志插入到数据库的驱动
    log4j.appender.database.URL=jdbc:oracle:thin:@47.106.161.174:1521:orcl
    log4j.appender.database.user=tom
    log4j.appender.database.password=tom
    log4j.appender.database.sql=insert into loginfo (Class,Mothod,createTime,LogLevel,MSG) values ('%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
    log4j.appender.database.layout=org.apache.log4j.PatternLayout
    
    
    
  • 相关阅读:
    redis事务详解
    redis之管道
    redis持久化
    redis之通信协议
    redis之线程IO模型
    Google、Azure、阿里云、RedHat…全球的 K8s 圈大佬聚在一起要聊啥?
    开箱即用,Knative 给您极致的容器 Serverless 体验
    2020 年 HackerEarth 调查:Go 语言成为最受欢迎的语言(内含 Go 语言图谱下载)
    Serverless 选型:深度解读 Serverless 架构及平台选择
    阿里云容器服务发布 Knative 托管服务 | 云原生生态周报 Vol. 49
  • 原文地址:https://www.cnblogs.com/qichunlin/p/9400518.html
Copyright © 2011-2022 走看看