From 628bfa3a466c63f011ac93250aecf357ba1abe7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=B5=D0=BB=D0=B5=D0=B7=D0=BE=D0=B2=20=D0=9F=D0=B0?= =?UTF-8?q?=D0=B2=D0=B5=D0=BB=20=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D1=8C=D0=B5?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Wed, 2 Aug 2023 17:39:41 +0800 Subject: [PATCH] initial-commit --- .gitignore | 29 +++++++ .idea/.gitignore | 3 + .idea/artifacts/dhaverdLogs_2_0.xml | 9 ++ .idea/misc.xml | 6 ++ .idea/modules.xml | 8 ++ .idea/uiDesigner.xml | 124 ++++++++++++++++++++++++++++ dhaverdLogs 2.0.iml | 11 +++ src/dhaverdLogs/DLogger.java | 78 +++++++++++++++++ 8 files changed, 268 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/artifacts/dhaverdLogs_2_0.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 dhaverdLogs 2.0.iml create mode 100644 src/dhaverdLogs/DLogger.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/artifacts/dhaverdLogs_2_0.xml b/.idea/artifacts/dhaverdLogs_2_0.xml new file mode 100644 index 0000000..9d7dd32 --- /dev/null +++ b/.idea/artifacts/dhaverdLogs_2_0.xml @@ -0,0 +1,9 @@ + + + $PROJECT_DIR$/out/artifacts/dhaverdLogs + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..07115cd --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ea1c3f4 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dhaverdLogs 2.0.iml b/dhaverdLogs 2.0.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/dhaverdLogs 2.0.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/dhaverdLogs/DLogger.java b/src/dhaverdLogs/DLogger.java new file mode 100644 index 0000000..7c36de5 --- /dev/null +++ b/src/dhaverdLogs/DLogger.java @@ -0,0 +1,78 @@ +package dhaverdLogs; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.file.Paths; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class DLogger { + + private static final String osSeparator = System.getProperty("file.separator"); + private static final String indent = " ".repeat(22); + private String fileName; + private boolean autoGenerateFileName; + private static String logDir = ""; + + private boolean customLogDir; + + public DLogger(String fileName, boolean autoGenerateFileName) { + this.fileName = fileName; + this.autoGenerateFileName = autoGenerateFileName; + } + + public void setLogDir(String dir){ + logDir = dir; + this.customLogDir = true; + } + + private String getCurrentTime(){ + String time; + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime now = LocalDateTime.now(); + time = "[" + dtf.format(now) + "] "; + return time; + } + + private File getLogFile(){ + if (autoGenerateFileName){ + setLogName("log"); + } + String path = ""; + if (customLogDir){ + path = logDir + osSeparator + fileName; + } else { + path = Paths.get("").toAbsolutePath().toString() + osSeparator + fileName; + } + return new File(path); + } + + private void setLogName(String name){ + String time = getCurrentTime(); + time = time.replace("[", ""); + time = time.replace("]", ""); + time = time.replace("-", "."); + time = time.replace(":", "-"); + time = time.replace(" ", "_"); + fileName = time + name + ".log"; + } + + public void log(String context, String text, boolean addTime, boolean addIndent) throws IOException { + File log = getLogFile(); + String finalText = ""; + if (addIndent){ + finalText += indent; + } + if (addTime){ + finalText += getCurrentTime(); + } + finalText += "[" + context + "] "; + finalText += text; + finalText = finalText.replace("\n", "\n" + indent); + FileWriter writer = new FileWriter(log, true); + writer.write(finalText + "\r\n"); + System.out.println(finalText); + writer.close(); + } +}