zoukankan      html  css  js  c++  java
  • 大数据- 自定义Log4j日记

    1.新建一个java project,在src下新建一个lib文件夹和 rescources 文件夹,resources文件夹不能命名错误。

    点击File——》project Structure...打开根据下图操作

    把相关jar包放进lib文件夹里并绑定。

    新建一个java文件 Log4jTest.java 和 HadoopLog4j.java

     

    package com.km.log4j;
    
    import org.apache.log4j.DailyRollingFileAppender;
    import org.apache.log4j.Logger;
    import org.apache.log4j.PatternLayout;
    
    
    /**
     * Created by 166 on 2017/7/27.
     */
    public class Log4jTest {
        public static void main(String[] args) {
            customLog4j(args[0]);
        }
    
       
    
        /**
         *  control configuration file
         */
        private static void customLog4j(String num){
            Logger logger = Logger.getLogger(Log4jTest.class);
            for (int i=0;i<Integer.parseInt(num);i++){
                try {
                    Thread.sleep(200);
                    logger.info("this is a test");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    

      新建一个

    package com.km.log4j;
    
    import org.apache.log4j.AppenderSkeleton;
    import org.apache.log4j.spi.LoggingEvent;
    
    /**
     * Created by 166 on 2017/7/28.
     */
    public class HadoopLog4j extends AppenderSkeleton{
        private String context;
    
        public String getContext() {
            return context;
        }
    
        public void setContext(String context) {
            this.context = context;
        }
    
        @Override
        protected void append(LoggingEvent loggingEvent) {
            System.out.println(String.format("hadoop log4j text ------------>%s",context));
        }
    
        @Override
        public void close() {
    
        }
    
        @Override
        public boolean requiresLayout() {
            return false;
        }
    }
    

    在resources文件夹下新建一个log4j.properties配置文件 

     

    #Set custom logger level to INFO and its only appender to hadoop.
    #log4j.logger指定你按哪个包打日志
    log4j.logger.com.km.log4j.Log4jTest=INFO,hadoop   //log4j.logger.包名.类 = 日志等级,输出打印位置
    
    log4j.appender.hadoop=com.km.log4j.HadoopLog4j  //log4j.appender.打印输出位置=appender的实现类(常用DailyRollingFileAppender)
    log4j.appender.hadoop.context=OK          //context调用appender实现类的setContext,设置传入参数为OK

     

    打开调试配置窗口,输入变量的值

     

     

  • 相关阅读:
    AQS简介
    原子类案例
    保证线程安全的三个方面
    CAS无锁机制
    乐观锁与悲观锁
    读写锁简介
    重入锁简介
    并发队列Queue
    报错Cannot resolve com.mysq.jdbc.Connection.ping method. Will use 'SELECT 1' instead 问题记录
    Springboot中MyBatis 自动转换 map-underscore-to-camel-case
  • 原文地址:https://www.cnblogs.com/RzCong/p/7252117.html
Copyright © 2011-2022 走看看