Java中日志的打印

#“微软蓝屏”事件暴露了网络安全哪些问题?#

创建一个util文件夹

注意:

  • 使用框架:如果你使用了某个框架(如 Spring Boot),它可能已经内置了 SLF4J 和其他日志库,因此不需要手动添加。

在util下创建LogUtil

package com.qc.web.ks.master.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogUtil {

    private final static String TAG = "LogUtil";

    private static final Logger logger = LoggerFactory.getLogger(LogUtil.class);

    public static void outPut(Object log) {
        System.out.printf(TAG + ":%s%n", log);
    }

    public static void outPut(Object... logs) {
        StringBuilder sb = new StringBuilder();
        for (Object o : logs) {
            sb.append(o).append(", ");
        }
        if (sb.length() > 0) sb.delete(sb.lastIndexOf(", "), sb.length() - 1);
        outPut(sb.toString());
    }

    public static void e(String e) {
        logger.error(e);

        String log = String.format("%s/%s:%s", DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"), "error", e);
        FileUtil.write(log);
    }

    public static void i(String i) {
        logger.info(i);

        String log = String.format("%s/%s:%s", DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"), "info", i);
        FileUtil.write(log);
    }

}

在util下创FileUtil类

package com.qc.web.ks.master.util;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class FileUtil {

    public static File getNewFile(File dir, String originalName, String suffix) {
        String fileName = String.format("%s.%s", originalName, suffix);
        File file = new File(dir, fileName);
        if (file.exists()) {
            int index = originalName.lastIndexOf("_");
            String newName;
            if (index == -1) {
                newName = String.format("%s_%s", originalName, 1);
            } else {
                String oName = originalName.substring(0, index);
                String c = originalName.substring(index + 1);
                if (TextUtil.isNumber(c)) {
                    int ic = Integer.parseInt(c);
                    newName = String.format("%s_%s", oName, ic + 1);
                } else {
                    newName = String.format("%s_%s", originalName, 1);
                }
            }
            return getNewFile(dir, newName, suffix);
        } else {
            return file;
        }
    }

    public static void write(String text) {
        String cur = System.getProperty("user.dir");
        File dir = new File(cur + File.separator + "Logs");
        if (!dir.exists()) dir.mkdir();
        String target = dir.getAbsolutePath() + File.separator + DateUtil.getCurrentTime("yyyy-MM-dd") + ".txt";
        try {
            //true表示不覆盖原来的内容,而是加到文件的后面,如果要覆盖,这个参数也可以省略
            FileWriter writer = new FileWriter(target, true);
            writer.write(text);
            writer.write("\n");
            writer.flush();
            writer.close();
        } catch (IOException e) {
            System.err.println(e.getMessage());
        }
    }

    public static boolean zip(List<String> paths, String result) {
        try (FileOutputStream fos = new FileOutputStream(result)) {
            ZipOutputStream zos = new ZipOutputStream(fos);
            zip(null, paths, zos);
            zos.close();
            fos.close();
            return true;
        } catch (IOException e) {
            LogUtil.e(e.getMessage());
            return false;
        }
    }
    private static void zip(String parent, List<String> paths, ZipOutputStream zos) throws IOException {
        for (String path : paths) {
            File target = new File(path);
            if (target.isDirectory()) {
                File[] children = target.listFiles();
                if (children != null) {
                    List<String> childrenPaths = new ArrayList<>();
                    for (File child : children) {
                        childrenPaths.add(child.getAbsolutePath());
                    }
                    zip(target.getName(), childrenPaths, zos);
                }
            } else {
                if (parent != null) {
                    zos.putNextEntry(new ZipEntry(parent + File.separator + target.getName()));
                } else {
                    zos.putNextEntry(new ZipEntry(target.getName()));
                }

                FileInputStream fis = new FileInputStream(target);
                int byte0;
                while ((byte0 = fis.read()) > 0) {
                    zos.write(byte0);
                }
                fis.close();
                zos.closeEntry();
            }
        }
    }

    public static void copy2Dir(String dirPath, List<String> paths) {
        File dir = new File(dirPath);
        if (!dir.exists()) {
            boolean success = dir.mkdir();
        }
        for (String path : paths) {
            try {
                File target = new File(path);
                File result = new File(dir, target.getName());
                FileInputStream fis = new FileInputStream(target);
                FileOutputStream fos = new FileOutputStream(result);

                int byte0;
                while ((byte0 = fis.read()) > 0) {
                    fos.write(byte0);
                }
                fis.close();
                fos.close();
            } catch (IOException e) {
                LogUtil.e(e.getMessage());
            }
        }
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值