/*
ESXX - The friendly ECMAscript/XML Application Server
Copyright (C) 2007-2015 Martin Blom <martin@blom.org>
This program is free software: you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.esxx.util;
import java.io.*;
import java.util.logging.*;
public class TrivialFormatter
extends Formatter {
public TrivialFormatter() {
this(true);
}
public TrivialFormatter(boolean include_level) {
super();
includeLevel = include_level;
}
@Override
public synchronized String format(LogRecord record) {
StringBuffer sb = new StringBuffer();
if (includeLevel) {
sb.append("[").append(record.getLevel().getLocalizedName()).append("] ");
}
int len = sb.length();
if (record.getSourceClassName() != null) {
sb.append(record.getSourceClassName());
}
else {
sb.append("<").append(record.getLoggerName()).append(">");
}
if (record.getSourceMethodName() != null) {
sb.append("::");
sb.append(record.getSourceMethodName());
}
if (len != sb.length()) {
sb.append(": ");
}
sb.append(formatMessage(record));
if (record.getThrown() != null) {
try {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
record.getThrown().printStackTrace(pw);
pw.close();
sb.append(": ");
sb.append(sw.toString());
}
catch (Exception ex) {
// Never mind
}
}
sb.append('\n');
return sb.toString();
}
private boolean includeLevel;
}