Java-8-教你如何写logger日志

开篇:最近特别忙,同时搞iOS、java后台,而且是很重要的支付业务,由不得半点马虎。关键是苹果baba还拒我app两次,到现在还在审核中(近几个月苹果审核很严格),准备着申诉解决了,没别的办法!


开始:

第一:建一个类,如下代码直接copy

package com.jyc.base.Util;

/**
 * Created by lhg on 17/7/22.
 */
import java.util.Enumeration;

import org.apache.log4j.Appender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;
import org.apache.log4j.net.SyslogAppender;
/**
 * 自定义日志级别和
 */
public class CustomLog {
    private static CustomLog log = new CustomLog();
    private CustomLog(){}
    public static CustomLog getInstance() {
        return log;
    }
    /**
     * 继承Level自定义级别
     */
    private static class CustomLogLevel extends Level{
        private static final long serialVersionUID = 1L;
        protected CustomLogLevel(int level, String levelStr, int syslogEquivalent) {
            super(level, levelStr, syslogEquivalent);
        }
    }
    /**
     * 自定义级别名称,以及级别范围
     */
    private static final Level CustomerLevel = new CustomLogLevel(20050, "CUSTOMER", SyslogAppender.LOG_LOCAL0);

    /**
     * 生成日志对象
     * @param filePath 日志输出路径
     * @param fileName 日志文件名
     * @param conversionPattern log的输出形式
     * @param flag true:在已存在log文件后面追加 false:新log覆盖以前的log
     */
    public Logger createLogger(String filePath, String fileName, String conversionPattern, boolean flag){
        // 生成新的Logger
        // 如果已经有了一个Logger实例则返回
        Logger logger = Logger.getLogger(fileName);
        // 清空Appender。特別是不想使用现存实例时一定要初期化
        logger.removeAllAppenders();
        // 设计定Logger级别。
        logger.setLevel(Level.DEBUG);
        // 设定是否继承父Logger。
        // 默认为true。继承root输出。
        // 设定false后将不输出root。
        logger.setAdditivity(false);
        // 生成新的Appender
        FileAppender appender = new RollingFileAppender();
        // log的输出形式
        PatternLayout layout = new PatternLayout();
        layout.setConversionPattern(conversionPattern+"%m%n");
        appender.setLayout(layout);
        // log输出路径
        appender.setFile(filePath+ fileName + ".log");
        // log的文字码
        appender.setEncoding("UTF-8");
        // true:在已存在log文件后面追加 false:新log覆盖以前的log
        appender.setAppend(flag);
        // 适用当前配置
        appender.activateOptions();
        // 将新的Appender加到Logger中
        logger.addAppender(appender);

        return logger;
    }
    /**
     * 使用自定义日志打印logger中的log方法
     * @param logger 日志对象
     * @param objLogInfo:日志内容
     */
    public void customLog(Logger logger, Object objLogInfo){
        logger.log(CustomerLevel, objLogInfo);
    }
    /**
     * 关闭自定义log
     * @param logger 日志对象
     */
    @SuppressWarnings("unchecked")
    public void closeCustomLog(Logger logger){
        for (Enumeration<Appender> appenders=logger.getAllAppenders(); appenders.hasMoreElements();) {
            Appender appender=appenders.nextElement();
            appender.close();
        }
    }
}

第二步:使用

1.创建一个日志文件,指定c盘下:

private Logger logger1 = CustomLog.getInstance().createLogger("c:/", "allinpay_test", "--->", false);

2.打印数据:

logger1.info("去注册:"+userId);


 
完 活 儿 !



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IOT_Elon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值