/*
* $Id$
*
* Copyright (c) 2008-2009 by Joel Uckelman
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License (LGPL) as published by the Free Software Foundation.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, copies are available
* at http://www.opensource.org.
*/
package VASSAL.tools.logging;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.TimeZone;
import VASSAL.tools.ThrowableUtils;
/**
* @author Joel Uckelman
* @since 3.1.0
*/
@Deprecated
public class LogEntry implements Serializable {
private static final long serialVersionUID = 1L;
public static final int MESSAGE = 0;
public static final int WARNING = 1;
public static final int ERROR = 2;
public static final int BUG = 3;
public static final int DEBUG = 4;
public static final int SYSTEM = 5;
public final long timestamp;
public final int pid;
public final int type;
public final String message;
public final String trace;
public final boolean wait;
public LogEntry(int pid, int type, Throwable thrown,
String message, boolean wait) {
this(System.currentTimeMillis(), pid, type, thrown, message, wait);
}
public LogEntry(long timestamp, int pid, int type,
Throwable thrown, String message, boolean wait) {
if (thrown == null && message == null)
throw new IllegalArgumentException();
this.timestamp = timestamp;
this.pid = pid;
this.type = type;
this.message = message;
this.trace = thrown != null ? ThrowableUtils.getStackTrace(thrown) : null;
this.wait = wait;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
final DateFormat dateFormat =
new SimpleDateFormat("dd MMM yyyy HH:mm:ss.SSS", Locale.ENGLISH);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
sb.append(dateFormat.format(timestamp))
.append(' ')
.append(pid);
if (message != null) {
sb.append(' ').append(message);
if (trace != null) {
sb.append("\n").append(trace);
}
}
else {
if (trace != null) {
sb.append(' ').append(trace);
}
}
return sb.toString();
}
}