Java Logging API generating empty log files -
i tried go through tutorial on java logging api:
www.vogella.com/articles/logging/article.html
but generated files empty (tested in netbeans, eclipse running jar cmd). log messages displayed in console only.
the following files used in project. might reason such behavior?
project: de.vogella.logger
myhtmlformatter.java
package de.vogella.logger; import java.text.simpledateformat; import java.util.date; import java.util.logging.formatter; import java.util.logging.handler; import java.util.logging.level; import java.util.logging.logrecord; //this custom formatter formats parts of log record single line class myhtmlformatter extends formatter { // method called every log records public string format(logrecord rec) { stringbuffer buf = new stringbuffer(1000); // bold levels >= warning buf.append("<tr>"); buf.append("<td>"); if (rec.getlevel().intvalue() >= level.warning.intvalue()) { buf.append("<b>"); buf.append(rec.getlevel()); buf.append("</b>"); } else { buf.append(rec.getlevel()); } buf.append("</td>"); buf.append("<td>"); buf.append(calcdate(rec.getmillis())); buf.append(' '); buf.append(formatmessage(rec)); buf.append('\n'); buf.append("<td>"); buf.append("</tr>\n"); return buf.tostring(); } private string calcdate(long millisecs) { simpledateformat date_format = new simpledateformat("mmm dd,yyyy hh:mm"); date resultdate = new date(millisecs); return date_format.format(resultdate); } // method called after handler using // formatter created public string gethead(handler h) { return "<html>\n<head>\n" + (new date()) + "\n</head>\n<body>\n<pre>\n" + "<table width=\"100%\" border>\n " + "<tr><th>level</th>" + "<th>time</th>" + "<th>log message</th>" + "</tr>\n"; } // method called after handler using // formatter closed public string gettail(handler h) { return "</table>\n </pre></body>\n</html>\n"; } } mylogger.java
package de.vogella.logger; import java.io.ioexception; import java.util.logging.filehandler; import java.util.logging.formatter; import java.util.logging.level; import java.util.logging.logger; import java.util.logging.simpleformatter; public class mylogger { static private filehandler filetxt; static private simpleformatter formattertxt; static private filehandler filehtml; static private formatter formatterhtml; static public void setup() throws ioexception { // global logger configure logger logger = logger.getlogger(logger.global_logger_name); logger.setlevel(level.info); filetxt = new filehandler("logging.txt"); filehtml = new filehandler("logging.html"); // create txt formatter formattertxt = new simpleformatter(); filetxt.setformatter(formattertxt); logger.addhandler(filetxt); // create html formatter formatterhtml = new myhtmlformatter(); filehtml.setformatter(formatterhtml); logger.addhandler(filehtml); } } uselogger.java
package de.vogella.logger.test; import java.io.ioexception; import java.util.logging.level; import java.util.logging.logger; import de.vogella.logger.mylogger; public class uselogger { // use classname, way can refactor private final static logger logger = logger.getlogger(uselogger.class .getname()); public void dosomethingandlog() { // image here real work // demo logging // set loglevel severe, severe messages written logger.setlevel(level.severe); logger.severe("info log"); logger.warning("info log"); logger.info("info log"); logger.finest("really not important"); // set loglevel info, severe, warning , info written // finest still not written logger.setlevel(level.info); logger.severe("info log"); logger.warning("info log"); logger.info("info log"); logger.finest("really not important"); } public static void main(string[] args) { uselogger tester = new uselogger(); try { mylogger.setup(); } catch (ioexception e) { e.printstacktrace(); throw new runtimeexception("problems creating log files"); } tester.dosomethingandlog(); } }
change following line (in method de.vogella.logger.mylogger.setup()):
// global logger configure logger logger = logger.getlogger(logger.global_logger_name); with:
// global logger configure logger logger = logger.getlogger(""); see more:
Comments
Post a Comment