import util.Log;
import javax.swing.*;
import java.awt.*;
import java.io.IOException;
import java.util.logging.*;
public class LoggerExample {
private static final Logger LOGGER = Logger.getLogger(LoggerExample.class.getName());
private JTextArea logTextArea;
public LoggerExample() {
// 创建JFrame窗口
JFrame frame = new JFrame("Logger Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建JTextArea
logTextArea = new JTextArea(10, 40);
logTextArea.setEditable(false);
// 将JTextArea放入JScrollPane中
JScrollPane scrollPane = new JScrollPane(logTextArea);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
// 创建自定义Handler
Handler logHandler = new TextAreaHandler();
logHandler.setFormatter(new SimpleFormatter());
FileHandler fileHandler = null;
try {
fileHandler = new FileHandler("log.log"); //同时也输出到文件
} catch (IOException e) {
e.printStackTrace();
}
fileHandler.setFormatter(new SimpleFormatter());
LOGGER.addHandler(fileHandler);
// 设置日志级别和Handler
LOGGER.setLevel(Level.ALL);
LOGGER.addHandler(logHandler);
// 示例日志输出
// all→finest→finer→fine→config→info→warning→server→off
//全部的→最好的→更精细的→好的→配置→信息→警告→服务器→关
// 级别依次升高,后面的日志级别会屏蔽之前的级别
LOGGER.severe("Severe log message");
LOGGER.warning("Warning log message");
LOGGER.info("Info log message");
LOGGER.config("Config log message");
LOGGER.fine("Fine log message");
LOGGER.finer("Finer log message");
LOGGER.finest("Finest log message");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new LoggerExample());
}
private class TextAreaHandler extends Handler {
@Override
public void publish(LogRecord record) {
String message = getFormatter().format(record);
SwingUtilities.invokeLater(() -> logTextArea.append(message + "\n"));
}
@Override
public void flush() {}
@Override
public void close() throws SecurityException {}
}
}
package util;
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Log {
public static Logger log = Logger.getLogger(Log.class.toString());
public static void main(String[] args) {
// 设置日志输出到文件
try {
FileHandler fileHandler = new FileHandler("log.log");
log.addHandler(fileHandler);
} catch (IOException e) {
e.printStackTrace();
}
// all→finest→finer→fine→config→info→warning→server→off
//全部的→最好的→更精细的→好的→配置→信息→警告→服务器→关
// 级别依次升高,后面的日志级别会屏蔽之前的级别
log.setLevel(Level.INFO);
log.finest("finest");
log.finer("finer");
log.fine("fine");
log.config("config");
log.info("info");
log.warning("warning");
log.severe("server");
}
}
格式化示例 java.util.logging.Formatter.format java code examples | Tabnine