LogDefault.java 2.27 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
        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
61 62 63 64 65 66 67 68 69 70
        if (info.isError()) {
            Throwable ex = info.getException();
            if (ex != null) {
                sb.append(ex.getClass().getName());
                sb.append(ex.getMessage());
            }
            System.err.println(sb);
            if (ex != null) {
                ex.printStackTrace();
            }
yanzg's avatar
yanzg committed
71
        } else {
yanzg's avatar
yanzg committed
72
            System.out.println(sb);
yanzg's avatar
yanzg committed
73 74 75 76 77 78
        }

        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
79
            // 生成路径
yanzg's avatar
yanzg committed
80
            String path = StringHelper.getCodeString(pathFormat, row);
yanzg's avatar
yanzg committed
81
            // 追加到文件
yanzg's avatar
yanzg committed
82
            FileHelper.writeFileAppend(new File(path), sb.toString(), "UTF-8");
yanzg's avatar
yanzg committed
83 84 85
        }
    }
}