📄 log.java
字号:
package jm.form.msn.form;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.File;import java.util.Hashtable;import javax.imageio.ImageIO;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.filechooser.FileSystemView;import jm.form.msn.config.JMMRConfigConstants;import jm.form.msn.util.Logger;import jm.form.msn.util.Manager;import jm.util.JMCheck;import jm.util.JMENDateUtil;import jm.util.JMFile;/** * 系统日志 梦界家园MSNP15 * * @author ISHome * @since 0.5.0.2 * @version 0.5.0.2.1 */public class Log extends javax.swing.JDialog implements JMMRConfigConstants, Logger { private JButton output; private Manager manager = null; private JPanel commandPanel; private JButton save; private JButton clear; private JCheckBox waring; private JCheckBox error; private JCheckBox info; private JCheckBox debug; private JPanel configPanel; private JPanel bottomPanel; private JTextArea log; private JScrollPane logScrollPane; public Log(JFrame form, Manager server) { super(form, true); manager = server; initGUI(); } public Log(JDialog form, Manager server) { super(form, true); manager = server; initGUI(); } private void initGUI() { try { { getContentPane().setBackground(new java.awt.Color(255, 255, 255)); { commandPanel = new JPanel(); GridLayout commandPanelLayout = new GridLayout(1, 1); commandPanelLayout.setColumns(1); commandPanelLayout.setHgap(5); commandPanelLayout.setVgap(5); commandPanel.setLayout(commandPanelLayout); getContentPane().add(commandPanel, BorderLayout.NORTH); commandPanel.setPreferredSize(new java.awt.Dimension(392, 30)); { clear = new JButton(); commandPanel.add(clear); clear.setText(manager.getConfigMap().get(LANG_LOG_BUTTON_CLEAR_TEXT)); clear.setToolTipText(manager.getConfigMap().get(LANG_LOG_BUTTON_CLEAR_HELP)); clear.setFont(BUTTON_FOUNT); clear.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { log.setText(""); } }); } { output = new JButton(); commandPanel.add(output); output.setText(manager.getConfigMap().get(LANG_LOG_BUTTON_OUTPUT_TEXT)); output.setToolTipText(manager.getConfigMap().get(LANG_LOG_BUTTON_OUTPUT_HELP)); output.setFont(BUTTON_FOUNT); output.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { saveLogToFile();// 保存参数 } }); } } } { bottomPanel = new JPanel(); BorderLayout jPanel1Layout = new BorderLayout(); bottomPanel.setLayout(jPanel1Layout); getContentPane().add(bottomPanel, BorderLayout.CENTER); { configPanel = new JPanel(); GridLayout configPanelLayout = new GridLayout(1, 1); configPanelLayout.setColumns(1); configPanelLayout.setHgap(5); configPanelLayout.setVgap(5); configPanel.setLayout(configPanelLayout); bottomPanel.add(configPanel, BorderLayout.NORTH); configPanel.setPreferredSize(new java.awt.Dimension(632, 32)); configPanel.setBackground(new java.awt.Color(255, 255, 255)); { debug = new JCheckBox(); configPanel.add(debug); debug.setText(manager.getConfigMap().get(LANG_LOG_CHECKBOX_DEBUG_TEXT)); debug.setFont(LABEL_FOUNT); debug.setBackground(new java.awt.Color(255, 255, 255)); } { error = new JCheckBox(); configPanel.add(error); error.setText(manager.getConfigMap().get(LANG_LOG_CHECKBOX_ERROR_TEXT)); error.setBackground(new java.awt.Color(255, 255, 255)); error.setFont(LABEL_FOUNT); } { info = new JCheckBox(); configPanel.add(info); info.setText(manager.getConfigMap().get(LANG_LOG_CHECKBOX_INFO_TEXT)); info.setFont(LABEL_FOUNT); info.setBackground(new java.awt.Color(255, 255, 255)); } { waring = new JCheckBox(); configPanel.add(waring); waring.setText(manager.getConfigMap().get(LANG_LOG_CHECKBOX_WARN_TEXT)); waring.setBackground(new java.awt.Color(255, 255, 255)); waring.setFont(LABEL_FOUNT); } { save = new JButton(); configPanel.add(save); save.setText(manager.getConfigMap().get(LANG_LOG_BUTTON_SAVE_TEXT)); save.setToolTipText(manager.getConfigMap().get(LANG_LOG_BUTTON_SAVE_HELP)); save.setFont(BUTTON_FOUNT); save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { saveConfig(true);// 保存参数 } }); } } { logScrollPane = new JScrollPane(); bottomPanel.add(logScrollPane, BorderLayout.CENTER); logScrollPane.setBackground(new java.awt.Color(255, 255, 255)); { log = new JTextArea(); logScrollPane.setViewportView(log); log.setEditable(false); } } } { this.setTitle(manager.getConfigMap().get(LANG_LOG_FORM_TITLE)); this.addWindowListener(new WindowAdapter() { /** * 窗口正处在关闭过程中时调用。此时可重写关闭操作。 * * @param e */ public void windowClosing(WindowEvent e) { saveConfig(false);// 保存参数 setVisible(false); } }); // 配置系统图标 this.setIconImage(ImageIO.read(new File(manager.getConfigMap().get(STYLES_MAIN_FORM_LOG)))); this.pack(); this.setSize(640, 480); } } catch (Exception e) { error(null, e); } } /** * 保存日志到文件 */ public void saveLogToFile() { FileSystemView fsv = FileSystemView.getFileSystemView(); String homeDirectory = fsv.getHomeDirectory().getPath();// 获取桌面路径 String curDateTime = JMENDateUtil.nowDate(DATE_TIME); // 获得当前时间 String fileName = homeDirectory + "\\" + curDateTime + ".txt"; if (JMFile.creatFile(fileName, this.log.getText())) manager.showInfoMessageDialog(curDateTime + ".txt" + "\r\n" + manager.getConfigMap().get(LANG_LOG_FORM_SUCCESS)); else manager.showErrorMessageDialog(manager.getConfigMap().get(LANG_LOG_FORM_FAILED)); } private final String DATE_TIME = "yyyyMMddHHmmss"; /** * 设置日志信息 * * @param l */ public void setLog(Object l) { StringBuffer logBuffer = new StringBuffer(500); logBuffer.append(JMENDateUtil.nowDate(DATE_FORMAT) + "\r\n"); logBuffer.append(l + "\r\n"); log.insert(logBuffer.toString(), log.getText().length()); } /** * 保存参数 */ public void saveConfig(boolean saveFlag) { // 开启警告日志信息 if (waring.isSelected()) { manager.getConfigMap().put(CONFIG_LOG_WARN, "1"); } else { manager.getConfigMap().put(CONFIG_LOG_WARN, "0"); } // 开启错误日志信息 if (error.isSelected()) { manager.getConfigMap().put(CONFIG_LOG_ERROR, "1"); } else { manager.getConfigMap().put(CONFIG_LOG_ERROR, "0"); } // 开启一般日志信息 if (info.isSelected()) { manager.getConfigMap().put(CONFIG_LOG_INFO, "1"); } else { manager.getConfigMap().put(CONFIG_LOG_INFO, "0"); } // 开启测试日志信息 if (debug.isSelected()) { manager.getConfigMap().put(CONFIG_LOG_DEBUG, "1"); } else { manager.getConfigMap().put(CONFIG_LOG_DEBUG, "0"); } // 保存参数 if (saveFlag) { // 整理日志出力配置参数 Hashtable<String, String> config = new Hashtable<String, String>(); config.put(CONFIG_LOG_WARN, manager.getConfigMap().get(CONFIG_LOG_WARN)); config.put(CONFIG_LOG_ERROR, manager.getConfigMap().get(CONFIG_LOG_ERROR)); config.put(CONFIG_LOG_INFO, manager.getConfigMap().get(CONFIG_LOG_INFO)); config.put(CONFIG_LOG_DEBUG, manager.getConfigMap().get(CONFIG_LOG_DEBUG)); // 保存配置参数到文件 manager.saveConfigFile(CONFIG_FILE_LOG, config); } } /** * 读取参数 */ public void loadConfig() { // 选择开启警告日志信息 if ("1".equals(manager.getConfigMap().get(CONFIG_LOG_WARN))) { waring.setSelected(true); } // 开启错误日志信息 if ("1".equals(manager.getConfigMap().get(CONFIG_LOG_ERROR))) { error.setSelected(true); } // 开启一般日志信息 if ("1".equals(manager.getConfigMap().get(CONFIG_LOG_INFO))) { info.setSelected(true); } // 开启测试日志信息 if ("1".equals(manager.getConfigMap().get(CONFIG_LOG_DEBUG))) { debug.setSelected(true); } } @Override public void error(Object m, Throwable t) { if ("1".equals(manager.getConfigMap().get(CONFIG_LOG_ERROR))) { if (!JMCheck.isNull(m)) { setLog(" " + m); } if (!JMCheck.isNull(t)) { StringBuffer logBuffer = new StringBuffer(2000); for (StackTraceElement s : t.getStackTrace()) logBuffer.append(s + "\r\n"); log.insert(logBuffer.toString(), log.getText().length()); } } } @Override public void info(Object m) { if (JMCheck.isNull(m)) { return; } if ("1".equals(manager.getConfigMap().get(CONFIG_LOG_ERROR))) { setLog(m); } } @Override public void debug(Object m) { if (JMCheck.isNull(m)) { return; } if ("1".equals(manager.getConfigMap().get(CONFIG_LOG_ERROR))) { setLog(m); } } @Override public void warn(Object m) { if (JMCheck.isNull(m)) { return; } if ("1".equals(manager.getConfigMap().get(CONFIG_LOG_ERROR))) { setLog(m); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -