commit 628bfa3a466c63f011ac93250aecf357ba1abe7c Author: Белезов Павел Евгеньевич Date: Wed Aug 2 17:39:41 2023 +0800 initial-commit 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(); + } +}