@@ -0,0 +1,1473 @@
+import java.io.FileNotFoundException;%0Aimport java.io.PrintWriter;%0Aimport java.io.UnsupportedEncodingException;%0Aimport java.util.Map;%0Aimport java.util.Set;%0A%0A/**%0A * @author hjorthjort%0A *%0A * Utility for writing markdown logs%0A */%0Apublic class Logger %7B%0A    private PrintWriter writer;%0A%0A    public Logger(String fileName) throws FileNotFoundException, UnsupportedEncodingException %7B%0A        writer = new PrintWriter(fileName, %22UTF-8%22);%0A    %7D%0A%0A    public void writeParagraph(String text) %7B%0A        writer.println(text);%0A        writer.println();%0A    %7D%0A%0A    public void writeBulletlist(String%5B%5D bullets) %7B%0A        for (String s : bullets) %7B%0A            writer.println(%22* %22 + s);%0A        %7D%0A        writer.println();%0A    %7D%0A%0A    public void writeAnchor(String anchorName) %7B%0A        writer.println(%22%3Ca name='%22 + anchorName + %22'%3E%3C/a%3E%22);%0A    %7D%0A%0A    public void writeHeader(String header, int level) %7B%0A        writer.println(new String(new char%5Blevel%5D).replace(%22%5C0%22, %22#%22) + %22 %22 + header);%0A        writer.println();%0A    %7D%0A%0A    public void writeTableMap(String keyHeader, String valueHeader, Map table) %7B%0A        writer.println(%22%7C %22 + keyHeader + %22 %7C %22 + valueHeader + %22 %7C%22);%0A        writer.println(%22%7C---%7C---%7C%22);%0A        for (Map.Entry entry : (Set%3CMap.Entry%3E) table.entrySet()) %7B%0A            writer.println(%22%7C %22 + entry.getKey().toString() + %22 %7C %22 + entry.getValue().toString() + %22 %7C%22);%0A        %7D%0A        writer.println();%0A    %7D%0A%0A%0A    public void close() %7B%0A        writer.close();%0A    %7D%0A%7D%0A

Create logging utility