diff --git a/file-appender/pom.xml b/file-appender/pom.xml new file mode 100644 index 0000000..b3308b5 --- /dev/null +++ b/file-appender/pom.xml @@ -0,0 +1,92 @@ + + + 4.0.0 + + file-appender + append text to file + https://begerad.de + de.begerad.file-appender + file-appender + 0.0.1 + jar + + + + UTF-8 + + 1.8 + 1.8 + + + + + + org.junit.jupiter + junit-jupiter-engine + 5.7.2 + test + + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.14.1 + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + + shade + + + + + *:* + + META-INF/*.MF + + + + true + depds + + + + + + de.begerad.fileappender.Main + ${project.artifactId} + ${project.version} + ${project.artifactId} + ${project.version} + ${project.groupId} + + + + + + + + + + diff --git a/file-appender/src/main/java/de/begerad/fileappender/FileAppender.java b/file-appender/src/main/java/de/begerad/fileappender/FileAppender.java new file mode 100644 index 0000000..82c01a0 --- /dev/null +++ b/file-appender/src/main/java/de/begerad/fileappender/FileAppender.java @@ -0,0 +1,48 @@ +package de.begerad.fileappender; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; + +public class FileAppender { + + public final static Logger LOG = LoggerFactory.getLogger(FileAppender.class); + + /** + * Append text line to file + * + * @param file object representing appending target + * @param content object representing content to be appended + */ + public static void append(File file, String content) { + LOG.debug("append() started..."); + + // default - create and write + // if file not exists, create and write + // if file exists, truncate and write + /*try (FileWriter fw = new FileWriter(file); + BufferedWriter bw = new BufferedWriter(fw)) { + bw.write(content); + bw.newLine(); + }*/ + + // append mode + // if file not exists, create and write + // if file exists, append to the end of the file + try (FileWriter fw = new FileWriter(file, true); + BufferedWriter bw = new BufferedWriter(fw)) { + + bw.write(content); + bw.newLine(); // add new line, System.lineSeparator() + + } catch (Exception e) { + LOG.error("ERROR while appending file " + file.getName() + " with content " + content); + e.printStackTrace(); + } + + LOG.debug("append() done."); + } +} \ No newline at end of file diff --git a/file-appender/src/main/java/de/begerad/fileappender/Main.java b/file-appender/src/main/java/de/begerad/fileappender/Main.java new file mode 100644 index 0000000..65c8f33 --- /dev/null +++ b/file-appender/src/main/java/de/begerad/fileappender/Main.java @@ -0,0 +1,43 @@ +package de.begerad.fileappender; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.IOException; + +import static de.begerad.fileappender.FileAppender.append; + +//TODO import static de.begerad.fileagerm.FileCleaner.deleteFilesByAge; + +public class Main { + + public static String appendPath = ""; + + public static String content = ""; + + public final static Logger LOG = LoggerFactory.getLogger(Main.class); + + public static void main(String[] args) { + LOG.debug("main() started..."); + + //check user input for file path + if (args.length < 1) { + LOG.error("Please enter path to file as first parameter."); + return; + } + appendPath = args[0]; + File appendedRecords = new File(appendPath); + + //check user input for content + if (args.length < 2) { + LOG.error("Please enter content as second parameter."); + return; + } + content = args[1]; + + append(appendedRecords, content); + + LOG.debug("main() done."); + } +} diff --git a/file-appender/src/main/resources/log4j2.xml b/file-appender/src/main/resources/log4j2.xml new file mode 100644 index 0000000..ce0e7ae --- /dev/null +++ b/file-appender/src/main/resources/log4j2.xml @@ -0,0 +1,32 @@ + + + + + + [%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1} %m%n + + + + + + + + + + + + + + + + + + + + + + diff --git a/file-appender/src/test/java/de/begerad/fileappender/TestFileAppender.java b/file-appender/src/test/java/de/begerad/fileappender/TestFileAppender.java new file mode 100644 index 0000000..b0f4549 --- /dev/null +++ b/file-appender/src/test/java/de/begerad/fileappender/TestFileAppender.java @@ -0,0 +1,8 @@ +package de.begerad.fileappender; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestFileAppender { +}