001/* 002 * Copyright (c) 2013 Nu Echo Inc. All rights reserved. 003 */ 004 005package com.nuecho.rivr.core.util.logging; 006 007import java.io.*; 008 009import org.slf4j.*; 010 011/** 012 * Console implementation of a {@link Logger}. 013 * 014 * @author Nu Echo Inc. 015 */ 016public abstract class ConsoleLogger extends LoggerAdapter { 017 018 private final LogLevel mLogLevel; 019 020 public ConsoleLogger(LogLevel logLevel) { 021 mLogLevel = logLevel; 022 } 023 024 @Override 025 public abstract String getName(); 026 027 @Override 028 protected void log(Marker marker, LogLevel logLevel, String message, Throwable throwable) { 029 PrintStream printStream = getPrintStream(); 030 printStream.println(String.format("[%5s]", logLevel) + " " + message); 031 if (throwable != null) { 032 throwable.printStackTrace(printStream); 033 } 034 } 035 036 protected abstract PrintStream getPrintStream(); 037 038 @Override 039 public boolean isTraceEnabled() { 040 return mLogLevel.ordinal() >= LogLevel.TRACE.ordinal(); 041 } 042 043 @Override 044 public boolean isTraceEnabled(Marker marker) { 045 return mLogLevel.ordinal() >= LogLevel.TRACE.ordinal(); 046 } 047 048 @Override 049 public boolean isDebugEnabled() { 050 return mLogLevel.ordinal() >= LogLevel.DEBUG.ordinal(); 051 } 052 053 @Override 054 public boolean isDebugEnabled(Marker marker) { 055 return mLogLevel.ordinal() >= LogLevel.DEBUG.ordinal(); 056 } 057 058 @Override 059 public boolean isInfoEnabled() { 060 return mLogLevel.ordinal() >= LogLevel.INFO.ordinal(); 061 } 062 063 @Override 064 public boolean isInfoEnabled(Marker marker) { 065 return mLogLevel.ordinal() >= LogLevel.INFO.ordinal(); 066 } 067 068 @Override 069 public boolean isWarnEnabled() { 070 return mLogLevel.ordinal() >= LogLevel.WARN.ordinal(); 071 } 072 073 @Override 074 public boolean isWarnEnabled(Marker marker) { 075 return mLogLevel.ordinal() >= LogLevel.WARN.ordinal(); 076 } 077 078 @Override 079 public boolean isErrorEnabled() { 080 return mLogLevel.ordinal() >= LogLevel.ERROR.ordinal(); 081 } 082 083 @Override 084 public boolean isErrorEnabled(Marker marker) { 085 return mLogLevel.ordinal() >= LogLevel.ERROR.ordinal(); 086 } 087 088}