diff options
Diffstat (limited to 'src/main/java/de/romjaki/logger/impl')
| -rw-r--r-- | src/main/java/de/romjaki/logger/impl/FileLogger.java | 27 | ||||
| -rw-r--r-- | src/main/java/de/romjaki/logger/impl/LoggerImpl.java | 12 | ||||
| -rw-r--r-- | src/main/java/de/romjaki/logger/impl/StreamLogger.java | 38 |
3 files changed, 77 insertions, 0 deletions
diff --git a/src/main/java/de/romjaki/logger/impl/FileLogger.java b/src/main/java/de/romjaki/logger/impl/FileLogger.java new file mode 100644 index 0000000..b7c8f3f --- /dev/null +++ b/src/main/java/de/romjaki/logger/impl/FileLogger.java @@ -0,0 +1,27 @@ +package de.romjaki.logger.impl; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +public class FileLogger extends StreamLogger { + public FileLogger(String name, File file) throws IOException { + super(name, new FileOutputStream(createFile(file))); + } + + public FileLogger(File file) throws IOException { + super(new FileOutputStream(createFile(file))); + } + + private static File createFile(File file) throws IOException { + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + if (!file.exists()) { + file.createNewFile(); + } + return file; + } + + +} diff --git a/src/main/java/de/romjaki/logger/impl/LoggerImpl.java b/src/main/java/de/romjaki/logger/impl/LoggerImpl.java new file mode 100644 index 0000000..e581f53 --- /dev/null +++ b/src/main/java/de/romjaki/logger/impl/LoggerImpl.java @@ -0,0 +1,12 @@ +package de.romjaki.logger.impl; + + +public class LoggerImpl extends StreamLogger { + public LoggerImpl(String name) { + super(name, System.out); + } + + public LoggerImpl() { + super(System.out); + } +} diff --git a/src/main/java/de/romjaki/logger/impl/StreamLogger.java b/src/main/java/de/romjaki/logger/impl/StreamLogger.java new file mode 100644 index 0000000..9428dfe --- /dev/null +++ b/src/main/java/de/romjaki/logger/impl/StreamLogger.java @@ -0,0 +1,38 @@ +package de.romjaki.logger.impl; + +import de.romjaki.logger.Logger; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; + +public class StreamLogger extends Logger { + private Writer writer; + + public StreamLogger(String name, OutputStream outputStream) { + this(name, new OutputStreamWriter(outputStream)); + } + + public StreamLogger(String name, Writer writer) { + super(name); + this.writer = writer; + } + + public StreamLogger(OutputStream outputStream) { + this(new OutputStreamWriter(outputStream)); + } + + public StreamLogger(Writer writer) { + this.writer = writer; + } + + @Override + protected void print(String text) { + try { + writer.write(text); + } catch (IOException e) { + e.printStackTrace(); + } + } +} |
