LogDefault.java 2.3 KB
Newer Older
yanzg's avatar
yanzg committed
1 2 3
package com.yanzuoguang.util.log;

import com.yanzuoguang.util.helper.DateHelper;
yanzg's avatar
yanzg committed
4
import com.yanzuoguang.util.helper.FileHelper;
yanzg's avatar
yanzg committed
5
import com.yanzuoguang.util.helper.StringHelper;
yanzg's avatar
yanzg committed
6 7 8
import com.yanzuoguang.util.vo.MapRow;

import java.io.File;
yanzg's avatar
yanzg committed
9 10 11

/**
 * 日志处理默认处理函数
yanzg's avatar
yanzg committed
12
 *
yanzg's avatar
yanzg committed
13
 * @author 颜佐光
yanzg's avatar
yanzg committed
14 15 16
 */
public class LogDefault implements RunnableLog {

yanzg's avatar
yanzg committed
17 18 19 20 21 22 23 24 25 26 27 28

    private static String pathFormat = StringHelper.EMPTY;


    public static String getPathFormat() {
        return pathFormat;
    }

    public static void setPathFormat(String pathFormat) {
        LogDefault.pathFormat = pathFormat;
    }

yanzg's avatar
yanzg committed
29 30 31 32 33 34 35 36 37 38
    /**
     * 需要处理的日志
     *
     * @param info 日志列表
     */
    @Override
    public void run(LogInfo info) {
        if (info == null) {
            return;
        }
yanzg's avatar
yanzg committed
39 40 41
        Class<?> cls = info.getCls();
        String clsName = StringHelper.EMPTY;
        if (cls != null) {
yanzg's avatar
yanzg committed
42 43
            clsName = info.getCls().getSimpleName();
        }
yanzg's avatar
yanzg committed
44

yanzg's avatar
yanzg committed
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
        StringBuilder sb = new StringBuilder();
        sb.append("/* ");
        sb.append(DateHelper.getDateTimeString("HH:mm:ss.SSS", info.getNow()));
        sb.append(" pid:");
        sb.append(info.getThreadId());
        sb.append(" t:");
        sb.append(info.getTime());
        sb.append(" /");
        sb.append(info.getTotalTime());
        sb.append(" ms ");
        sb.append(clsName);
        sb.append(" ");
        sb.append(info.getTag());
        sb.append(" */ ");
        sb.append(info.getMessage());


yanzg's avatar
yanzg committed
62 63 64 65
        Throwable ex = info.getException();
        if (ex != null) {
            sb.append(ex.getClass().getName());
            sb.append(ex.getMessage());
yanzg's avatar
yanzg committed
66 67
            sb.append(System.getProperty("line.separator"));
            System.err.print(sb.toString());
yanzg's avatar
yanzg committed
68
            ex.printStackTrace();
yanzg's avatar
yanzg committed
69
        } else {
yanzg's avatar
yanzg committed
70 71 72 73 74 75 76 77
            sb.append(System.getProperty("line.separator"));
            System.out.print(sb.toString());
        }

        if (!StringHelper.isEmpty(pathFormat)) {
            MapRow row = new MapRow();
            row.put("day", DateHelper.getToday(info.getNow()));
            row.put("thread", info.getThreadId());
yanzg's avatar
yanzg committed
78
            // 生成路径
yanzg's avatar
yanzg committed
79
            String path = StringHelper.getCodeString(pathFormat, row);
yanzg's avatar
yanzg committed
80
            // 追加到文件
yanzg's avatar
yanzg committed
81
            FileHelper.writeFileAppend(new File(path), sb.toString(), "UTF-8");
yanzg's avatar
yanzg committed
82 83 84
        }
    }
}