➕ 添加依赖:添加并引入Slf4j api 与 logback作为项目日志框架,已替换项目内控制台输出,简单封装了日志工具类
This commit is contained in:
parent
b1662b717a
commit
79e368dc17
13
pom.xml
13
pom.xml
@ -37,7 +37,18 @@
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.10.1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- SLF4J API -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.32</version>
|
||||
</dependency>
|
||||
<!-- SLF4J Binding (Logback) -->
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>1.2.9</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@ -4,6 +4,7 @@ module org.jcnc.jnotepad {
|
||||
// requires cn.hutool.json;
|
||||
// requires cn.hutool.core;
|
||||
requires com.google.gson;
|
||||
requires org.slf4j;
|
||||
exports org.jcnc.jnotepad;
|
||||
exports org.jcnc.jnotepad.tool;
|
||||
exports org.jcnc.jnotepad.Interface;
|
||||
@ -13,4 +14,5 @@ module org.jcnc.jnotepad {
|
||||
exports org.jcnc.jnotepad.view.manager;
|
||||
exports org.jcnc.jnotepad.constants;
|
||||
exports org.jcnc.jnotepad.ui;
|
||||
exports org.jcnc.jnotepad.exception;
|
||||
}
|
||||
@ -4,6 +4,7 @@ import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.scene.control.Tab;
|
||||
import javafx.stage.FileChooser;
|
||||
import org.jcnc.jnotepad.tool.LogUtil;
|
||||
import org.jcnc.jnotepad.ui.LineNumberTextArea;
|
||||
import org.jcnc.jnotepad.view.manager.ViewManager;
|
||||
|
||||
@ -49,7 +50,7 @@ public class SaveAsFile implements EventHandler<ActionEvent> {
|
||||
selectedTab.setText(file.getName()); // 更新Tab页标签上的文件名
|
||||
selectedTab.setUserData(file); // 将文件对象保存到Tab页的UserData中
|
||||
} catch (IOException ignored) {
|
||||
System.out.println("已忽视IO异常!");
|
||||
LogUtil.info("已忽略IO异常!",this.getClass());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import org.jcnc.jnotepad.controller.event.handler.NewFile;
|
||||
import org.jcnc.jnotepad.controller.event.handler.OpenFile;
|
||||
import org.jcnc.jnotepad.controller.event.handler.SaveAsFile;
|
||||
import org.jcnc.jnotepad.tool.EncodingDetector;
|
||||
import org.jcnc.jnotepad.tool.LogUtil;
|
||||
import org.jcnc.jnotepad.ui.LineNumberTextArea;
|
||||
import org.jcnc.jnotepad.view.manager.ViewManager;
|
||||
|
||||
@ -107,9 +108,9 @@ public class Controller implements ControllerInterface {
|
||||
if (file != null) {
|
||||
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
|
||||
writer.write(newValue);
|
||||
System.out.println("正在自动保存---");
|
||||
LogUtil.info("正在自动保存---",this.getClass());
|
||||
} catch (IOException ignored) {
|
||||
System.out.println("已忽视IO异常!");
|
||||
LogUtil.info("已忽略IO异常!",this.getClass());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -184,7 +185,7 @@ public class Controller implements ControllerInterface {
|
||||
autoSave(textArea);
|
||||
});
|
||||
} catch (IOException ignored) {
|
||||
System.out.println("已忽视IO异常!");
|
||||
LogUtil.info("已忽略IO异常!",this.getClass());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@ import com.google.gson.reflect.TypeToken;
|
||||
import javafx.scene.control.MenuItem;
|
||||
import javafx.scene.input.KeyCombination;
|
||||
import org.jcnc.jnotepad.Interface.ShortcutKeyInterface;
|
||||
import org.jcnc.jnotepad.tool.LogUtil;
|
||||
import org.jcnc.jnotepad.view.manager.ViewManager;
|
||||
|
||||
import java.io.*;
|
||||
@ -33,7 +34,7 @@ public class ShortcutKey implements ShortcutKeyInterface {
|
||||
jsonData.append(line);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
LogUtil.error(e.getMessage(),e,this.getClass());
|
||||
}
|
||||
} else {
|
||||
// todo new InputStreamReader(inputStream) 实参 'inputStream' 可能为null
|
||||
@ -43,7 +44,7 @@ public class ShortcutKey implements ShortcutKeyInterface {
|
||||
jsonData.append(line);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
LogUtil.error(e.getMessage(),e,this.getClass());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
14
src/main/java/org/jcnc/jnotepad/exception/AppException.java
Normal file
14
src/main/java/org/jcnc/jnotepad/exception/AppException.java
Normal file
@ -0,0 +1,14 @@
|
||||
package org.jcnc.jnotepad.exception;
|
||||
import org.jcnc.jnotepad.tool.LogUtil;
|
||||
|
||||
/**
|
||||
* 应用异常类
|
||||
*
|
||||
* @author gewuyou
|
||||
*/
|
||||
public class AppException extends RuntimeException{
|
||||
public AppException(String message) {
|
||||
super(message);
|
||||
LogUtil.error(message,this.getClass());
|
||||
}
|
||||
}
|
||||
@ -36,7 +36,7 @@ public class EncodingDetector {
|
||||
// 尝试常见的编码
|
||||
for (Charset charset : commonCharsets()) {
|
||||
if (isValidEncoding(text, charset)) {
|
||||
System.out.println("编码监测结果:" + isValidEncoding(text, charset));
|
||||
LogUtil.info("编码监测结果:" + isValidEncoding(text, charset), EncodingDetector.class);
|
||||
return charset.name();
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@ public class FileUtil {
|
||||
jsonStr = sb.toString();
|
||||
return jsonStr;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
LogUtil.error(e.getMessage(),e,FileUtil.class);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
79
src/main/java/org/jcnc/jnotepad/tool/LogUtil.java
Normal file
79
src/main/java/org/jcnc/jnotepad/tool/LogUtil.java
Normal file
@ -0,0 +1,79 @@
|
||||
package org.jcnc.jnotepad.tool;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* 日志工具类
|
||||
*
|
||||
* @author gewuyou
|
||||
*/
|
||||
public class LogUtil {
|
||||
private LogUtil() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 日志信息打印
|
||||
*
|
||||
* @param message 日志信息
|
||||
* @param currentClass 所要记录的类
|
||||
*
|
||||
* @apiNote 传入当前需要记录的类,方便知晓是哪个位置记录的日志
|
||||
*/
|
||||
public static void info(String message, Class<?> currentClass) {
|
||||
Logger logger = LoggerFactory.getLogger(currentClass);
|
||||
logger.info(message);
|
||||
}
|
||||
/**
|
||||
* 日志排错信息打印
|
||||
*
|
||||
* @param message 日志信息
|
||||
* @param currentClass 所要记录的类
|
||||
*
|
||||
* @apiNote 传入当前需要记录的类,方便知晓是哪个位置记录的日志
|
||||
*/
|
||||
|
||||
public static void debug(String message, Class<?> currentClass) {
|
||||
Logger logger = LoggerFactory.getLogger(currentClass);
|
||||
logger.debug(message);
|
||||
}
|
||||
/**
|
||||
* 日志警告信息打印
|
||||
*
|
||||
* @param message 日志信息
|
||||
* @param currentClass 所要记录的类
|
||||
*
|
||||
* @apiNote 传入当前需要记录的类,方便知晓是哪个位置记录的日志
|
||||
*/
|
||||
public static void warn(String message, Class<?> currentClass) {
|
||||
Logger logger = LoggerFactory.getLogger(currentClass);
|
||||
logger.warn(message);
|
||||
}
|
||||
/**
|
||||
* 日志错误信息打印
|
||||
*
|
||||
* @param message 日志信息
|
||||
* @param currentClass 所要记录的类
|
||||
*
|
||||
* @apiNote 传入当前需要记录的类,方便知晓是哪个位置记录的日志
|
||||
*/
|
||||
public static void error(String message, Class<?> currentClass) {
|
||||
Logger logger = LoggerFactory.getLogger(currentClass);
|
||||
logger.error(message);
|
||||
}
|
||||
/**
|
||||
* 日志错误信息打印
|
||||
*
|
||||
* @param message 日志信息
|
||||
* @param throwable 抛出的异常
|
||||
* @param currentClass 所要记录的类
|
||||
*
|
||||
* @apiNote 这个方法用来弥补当抛出异常或手动抛出异常时,无法捕捉到所抛异常
|
||||
*/
|
||||
|
||||
public static void error(String message, Throwable throwable, Class<?> currentClass) {
|
||||
Logger logger = LoggerFactory.getLogger(currentClass);
|
||||
logger.error(message, throwable);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import javafx.scene.Scene;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import org.jcnc.jnotepad.exception.AppException;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -25,9 +26,7 @@ public class ViewManager {
|
||||
private int tabIndex = 0;
|
||||
|
||||
private Boolean line = true;
|
||||
|
||||
/// 菜单栏组件
|
||||
|
||||
/**
|
||||
* 菜单栏
|
||||
*/
|
||||
@ -177,7 +176,7 @@ public class ViewManager {
|
||||
if (instance != null) {
|
||||
return instance;
|
||||
} else {
|
||||
throw new RuntimeException("ViewManager的实例未初始化!");
|
||||
throw new AppException("ViewManager实例未初始化!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -189,7 +188,6 @@ public class ViewManager {
|
||||
private ViewManager(Scene scene) {
|
||||
root = new BorderPane();
|
||||
scene.setRoot(root);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user