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 // samskivert library - useful routines for java programs
// Copyright (C) 2001 Michael Bayne // Copyright (C) 2001 Michael Bayne
@@ -20,6 +20,8 @@
package com.samskivert.util; package com.samskivert.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable; import java.util.Hashtable;
/** /**
@@ -32,39 +34,55 @@ import java.util.Hashtable;
*/ */
public class DefaultLogProvider implements LogProvider 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); Integer tlevel = (Integer)_levels.get(moduleName);
if ((tlevel != null && level >= tlevel.intValue()) || if ((tlevel != null && level >= tlevel.intValue()) ||
(level >= _level)) { (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); Integer tlevel = (Integer)_levels.get(moduleName);
if ((tlevel != null && level >= tlevel.intValue()) || if ((tlevel != null && level >= tlevel.intValue()) ||
(level >= _level)) { (level >= _level)) {
System.err.println(moduleName + ": " + t.getMessage()); System.err.println(formatEntry(moduleName, level, t.getMessage()));
t.printStackTrace(System.err); 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)); _levels.put(moduleName, new Integer(level));
} }
public void setLevel (int level) public synchronized void setLevel (int level)
{ {
_level = level; _level = level;
_levels.clear(); _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. */ /** The default log level. */
protected int _level = Log.INFO; protected int _level = Log.INFO;
/** The levels of each module. */ /** The levels of each module. */
protected Hashtable _levels = new Hashtable(); 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 = { "*", "?", "!" };
} }