Added time stamp and log level info to default log output.

git-svn-id: https://samskivert.googlecode.com/svn/trunk@766 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
mdb
2002-05-31 18:47:05 +00:00
parent 8279009ded
commit 1c409ee735
@@ -1,5 +1,5 @@
//
// $Id: DefaultLogProvider.java,v 1.3 2001/08/11 22:43:29 mdb Exp $
// $Id: DefaultLogProvider.java,v 1.4 2002/05/31 18:47:05 mdb Exp $
//
// samskivert library - useful routines for java programs
// Copyright (C) 2001 Michael Bayne
@@ -20,6 +20,8 @@
package com.samskivert.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;
/**
@@ -32,39 +34,55 @@ import java.util.Hashtable;
*/
public class DefaultLogProvider implements LogProvider
{
public void log (int level, String moduleName, String message)
public synchronized void log (
int level, String moduleName, String message)
{
Integer tlevel = (Integer)_levels.get(moduleName);
if ((tlevel != null && level >= tlevel.intValue()) ||
(level >= _level)) {
System.err.println(moduleName + ": " + message);
System.err.println(formatEntry(moduleName, level, message));
}
}
public void logStackTrace (int level, String moduleName, Throwable t)
public synchronized void logStackTrace (
int level, String moduleName, Throwable t)
{
Integer tlevel = (Integer)_levels.get(moduleName);
if ((tlevel != null && level >= tlevel.intValue()) ||
(level >= _level)) {
System.err.println(moduleName + ": " + t.getMessage());
System.err.println(formatEntry(moduleName, level, t.getMessage()));
t.printStackTrace(System.err);
}
}
public void setLevel (String moduleName, int level)
public synchronized void setLevel (String moduleName, int level)
{
_levels.put(moduleName, new Integer(level));
}
public void setLevel (int level)
public synchronized void setLevel (int level)
{
_level = level;
_levels.clear();
}
protected synchronized String formatEntry (
String moduleName, int level, String message)
{
return (_format.format(new Date()) + " " +
LEVEL_CHARS[level] + " " + moduleName + ": " + message);
}
/** The default log level. */
protected int _level = Log.INFO;
/** The levels of each module. */
protected Hashtable _levels = new Hashtable();
/** Used to accompany log messages with time stamps. */
protected SimpleDateFormat _format =
new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:SSSS");
/** Used to tag log messages with their log level. */
protected static final String[] LEVEL_CHARS = { "*", "?", "!" };
}