aboutsummaryrefslogtreecommitdiff
path: root/subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java
diff options
context:
space:
mode:
Diffstat (limited to 'subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java')
-rw-r--r--subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java231
1 files changed, 0 insertions, 231 deletions
diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java b/subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java
deleted file mode 100644
index 0e595458..00000000
--- a/subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- This file is part of Subsonic.
-
- Subsonic 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.
-
- Subsonic 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 Subsonic. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright 2009 (C) Sindre Mehus
- */
-package net.sourceforge.subsonic;
-
-import net.sourceforge.subsonic.service.*;
-import net.sourceforge.subsonic.util.*;
-import org.apache.commons.lang.exception.*;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-/**
- * Logger implementation which logs to SUBSONIC_HOME/subsonic.log.
- * <br/>
- * Note: Third party logging libraries (such as log4j and Commons logging) are intentionally not
- * used. These libraries causes a lot of headache when deploying to some application servers
- * (for instance Jetty and JBoss).
- *
- * @author Sindre Mehus
- * @version $Revision: 1.1 $ $Date: 2005/05/09 19:58:26 $
- */
-public class Logger {
-
- private String category;
-
- private static List<Entry> entries = Collections.synchronizedList(new BoundedList<Entry>(50));
- private static PrintWriter writer;
-
- /**
- * Creates a logger for the given class.
- * @param clazz The class.
- * @return A logger for the class.
- */
- public static Logger getLogger(Class clazz) {
- return new Logger(clazz.getName());
- }
-
- /**
- * Creates a logger for the given namee.
- * @param name The name.
- * @return A logger for the name.
- */
- public static Logger getLogger(String name) {
- return new Logger(name);
- }
-
- /**
- * Returns the last few log entries.
- * @return The last few log entries.
- */
- public static Entry[] getLatestLogEntries() {
- return entries.toArray(new Entry[0]);
- }
-
- private Logger(String name) {
- int lastDot = name.lastIndexOf('.');
- if (lastDot == -1) {
- category = name;
- } else {
- category = name.substring(lastDot + 1);
- }
- }
-
- /**
- * Logs a debug message.
- * @param message The log message.
- */
- public void debug(Object message) {
- debug(message, null);
- }
-
- /**
- * Logs a debug message.
- * @param message The message.
- * @param error The optional exception.
- */
- public void debug(Object message, Throwable error) {
- add(Level.DEBUG, message, error);
- }
-
- /**
- * Logs an info message.
- * @param message The message.
- */
- public void info(Object message) {
- info(message, null);
- }
-
- /**
- * Logs an info message.
- * @param message The message.
- * @param error The optional exception.
- */
- public void info(Object message, Throwable error) {
- add(Level.INFO, message, error);
- }
-
- /**
- * Logs a warning message.
- * @param message The message.
- */
- public void warn(Object message) {
- warn(message, null);
- }
-
- /**
- * Logs a warning message.
- * @param message The message.
- * @param error The optional exception.
- */
- public void warn(Object message, Throwable error) {
- add(Level.WARN, message, error);
- }
-
- /**
- * Logs an error message.
- * @param message The message.
- */
- public void error(Object message) {
- error(message, null);
- }
-
- /**
- * Logs an error message.
- * @param message The message.
- * @param error The optional exception.
- */
- public void error(Object message, Throwable error) {
- add(Level.ERROR, message, error);
- }
-
- private void add(Level level, Object message, Throwable error) {
- Entry entry = new Entry(category, level, message, error);
- try {
- getPrintWriter().println(entry);
- } catch (IOException x) {
- System.err.println("Failed to write to subsonic.log.");
- x.printStackTrace();
- }
- entries.add(entry);
- }
-
- private static synchronized PrintWriter getPrintWriter() throws IOException {
- if (writer == null) {
- writer = new PrintWriter(new FileWriter(getLogFile(), false), true);
- }
- return writer;
- }
-
- public static File getLogFile() {
- File subsonicHome = SettingsService.getSubsonicHome();
- return new File(subsonicHome, "subsonic.log");
- }
-
- /**
- * Log level.
- */
- public enum Level {
- DEBUG, INFO, WARN, ERROR
- }
-
- /**
- * Log entry.
- */
- public static class Entry {
- private String category;
- private Date date;
- private Level level;
- private Object message;
- private Throwable error;
- private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
-
- public Entry(String category, Level level, Object message, Throwable error) {
- this.date = new Date();
- this.category = category;
- this.level = level;
- this.message = message;
- this.error = error;
- }
-
- public String getCategory() {
- return category;
- }
-
- public Date getDate() {
- return date;
- }
-
- public Level getLevel() {
- return level;
- }
-
- public Object getMessage() {
- return message;
- }
-
- public Throwable getError() {
- return error;
- }
-
- public String toString() {
- StringBuffer buf = new StringBuffer();
- buf.append('[').append(DATE_FORMAT.format(date)).append("] ");
- buf.append(level).append(' ');
- buf.append(category).append(" - ");
- buf.append(message);
-
- if (error != null) {
- buf.append('\n').append(ExceptionUtils.getFullStackTrace(error));
- }
- return buf.toString();
- }
- }
-}