Template design pattern: DateLogger.java & DateTimeLogger.java
Strategy design pattern: ConsoleLogWriter.java & FileLogWriter.java