You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ym...@apache.org on 2002/08/13 14:59:12 UTC
cvs commit: jakarta-avalon-excalibur/csframework/src/cs/Logger AbstractLogEnabled.cs ConsoleLogger.cs ILogEnabled.cs ILogger.cs Log4netLogger.cs NullLogger.cs
ymikulski 2002/08/13 05:59:11
Added: csframework/src/cs/Logger AbstractLogEnabled.cs
ConsoleLogger.cs ILogEnabled.cs ILogger.cs
Log4netLogger.cs NullLogger.cs
Log:
no message
Revision Changes Path
1.1 jakarta-avalon-excalibur/csframework/src/cs/Logger/AbstractLogEnabled.cs
Index: AbstractLogEnabled.cs
===================================================================
///
/// Copyright (C) The Apache Software Foundation. All rights reserved.
///
/// This software is published under the terms of the Apache Software License
/// version 1.1, a copy of which has been included with this distribution in
/// the LICENSE.txt file.
///
using System;
namespace Apache.Avalon.Logger
{
/// <summary>
/// The Utility class to allow construction of easy components
/// that will perform logging.
/// </summary>
public abstract class AbstractLogEnabled: ILogEnabled
{
// Base ILogger instance
private ILogger logger;
/// <summary>
/// Gets the ILogger instance.
/// </summary>
protected ILogger Logger
{
get
{
return logger;
}
}
/// <summary>
/// The Method sets the component logger.
/// </summary>
/// <param name="logger">The ILogger instance.</param>
public void EnableLogging(ILogger logger )
{
this.logger = logger;
}
/// <summary>
/// The Helper method to setup other components with same logger.
/// </summary>
/// <param name="component">The Component to pass logger object to.</param>
protected void SetupLogger(object component)
{
SetupLogger( component, (string)null );
}
/// <summary>
/// The Helper method to setup other components with logger.
/// The logger has the subcategory of this components logger.
/// </summary>
/// <param name="component">The Component to pass logger object to.</param>
/// <param name="subCategory">The Subcategory to use.</param>
protected void SetupLogger(object component, string subCategory )
{
ILogger logger = Logger;
if(subCategory != null)
{
logger = Logger.CreateChildLogger( subCategory );
}
SetupLogger( component, logger );
}
/// <summary>
/// The Helper method to setup other components with logger.
/// </summary>
/// <param name="component">The Component to pass logger object to.</param>
/// <param name="logger">The ILogger instance.</param>
protected void SetupLogger(object component, ILogger logger )
{
if( component is ILogEnabled )
{
((ILogEnabled) component).EnableLogging( logger );
}
}
}
}
1.1 jakarta-avalon-excalibur/csframework/src/cs/Logger/ConsoleLogger.cs
Index: ConsoleLogger.cs
===================================================================
///
/// Copyright (C) The Apache Software Foundation. All rights reserved.
///
/// This software is published under the terms of the Apache Software License
/// version 1.1, a copy of which has been included with this distribution in
/// the LICENSE.txt file.
///
using System;
namespace Apache.Avalon.Logger
{
/// <summary>
/// The Logger sending everything to the standard output streams.
/// This is mainly for the cases when you have a utility that
/// does not have a logger to supply.
/// </summary>
public class ConsoleLogger: ILogger
{
/// <summary>
/// Typecode for debugging messages.
/// </summary>
public const int LEVEL_DEBUG = 0;
public const string LEVEL_DEBUG_NAME = "DEBUG";
/// <summary>
/// Typecode for informational messages.
/// </summary>
public const int LEVEL_INFO = 1;
public const string LEVEL_INFO_NAME = "INFO";
/// <summary>
/// Typecode for warning messages.
/// </summary>
public const int LEVEL_WARN = 2;
public const string LEVEL_WARN_NAME = "WARN";
/// <summary>
/// Typecode for error messages.
/// </summary>
public const int LEVEL_ERROR = 3;
public const string LEVEL_ERROR_NAME = "ERROR";
/// <summary>
/// Typecode for fatal error messages.
/// </summary>
public const int LEVEL_FATAL = 4;
public const string LEVEL_FATAL_NAME = "FATAL ERROR";
/// <summary>
/// Typecode for disabled log levels.
/// </summary>
public const int LEVEL_DISABLED = 5;
private int logLevel;
/// <summary>
/// Creates a new ConsoleLogger with the priority set to DEBUG.
/// </summary>
public ConsoleLogger(): this(LEVEL_DEBUG)
{
}
/// <summary>
/// Creates a new ConsoleLogger.
/// </summary>
/// <param name="logLevel">The Log level typecode.</param>
public ConsoleLogger(int logLevel)
{
this.logLevel = logLevel;
}
/// <summary>
/// Logs a debug message.
/// </summary>
/// <param name="message">The Message</param>
public void Debug(string message )
{
Debug(message, null);
}
/// <summary>
/// Logs a debug message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void Debug(string message, Exception exception)
{
Log(ConsoleLogger.LEVEL_DEBUG, ConsoleLogger.LEVEL_DEBUG_NAME, message, exception);
}
/// <summary>
/// Determines if messages of priority "debug" will be logged.
/// </summary>
/// <value>True if "debug" messages will be logged.</value>
public bool IsDebugEnabled
{
get
{
return (logLevel <= LEVEL_DEBUG);
}
}
/// <summary>
/// Logs an info message.
/// </summary>
/// <param name="message">The Message</param>
public void Info( string message )
{
Info(message, null);
}
/// <summary>
/// Logs an info message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void Info( string message, Exception exception)
{
Log(ConsoleLogger.LEVEL_INFO, ConsoleLogger.LEVEL_INFO_NAME, message, exception);
}
/// <summary>
/// Determines if messages of priority "info" will be logged.
/// </summary>
/// <value>True if "info" messages will be logged.</value>
public bool IsInfoEnabled
{
get
{
return (logLevel <= LEVEL_INFO);
}
}
/// <summary>
/// Logs a warn message.
/// </summary>
/// <param name="message">The Message</param>
public void Warn(string message )
{
Warn(message, null);
}
/// <summary>
/// Logs a warn message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void Warn(string message, Exception exception)
{
Log(ConsoleLogger.LEVEL_WARN, ConsoleLogger.LEVEL_WARN_NAME, message, exception);
}
/// <summary>
/// Determines if messages of priority "warn" will be logged.
/// </summary>
/// <value>True if "warn" messages will be logged.</value>
public bool IsWarnEnabled
{
get
{
return (logLevel <= LEVEL_WARN);
}
}
/// <summary>
/// Logs an error message.
/// </summary>
/// <param name="message">The Message</param>
public void Error(string message )
{
Error(message, null);
}
/// <summary>
/// Logs an error message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void Error(string message, Exception exception)
{
Log(ConsoleLogger.LEVEL_ERROR, ConsoleLogger.LEVEL_ERROR_NAME, message, exception);
}
/// <summary>
/// Determines if messages of priority "error" will be logged.
/// </summary>
/// <value>True if "error" messages will be logged.</value>
public bool IsErrorEnabled
{
get
{
return (logLevel <= LEVEL_ERROR);
}
}
/// <summary>
/// Logs a fatal error message.
/// </summary>
/// <param name="message">The Message</param>
public void FatalError(string message )
{
FatalError(message, null);
}
/// <summary>
/// Logs a fatal error message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void FatalError(string message, Exception exception)
{
Log(ConsoleLogger.LEVEL_FATAL, ConsoleLogger.LEVEL_FATAL_NAME, message, exception);
}
/// <summary>
/// Determines if messages of priority "fatalError" will be logged.
/// </summary>
/// <value>True if "fatalError" messages will be logged.</value>
public bool IsFatalErrorEnabled
{
get
{
return (logLevel <= LEVEL_FATAL);
}
}
/// <summary>
/// A Common method to log.
/// </summary>
/// <param name="level">The level of logging</param>
/// <param name="levelName">The Level name</param>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
protected void Log(int level, string levelName, string message, Exception exception)
{
if(logLevel <= level)
{
Console.Out.WriteLine(string.Format("[{0}] {1}", levelName, message));
if(exception != null)
{
Console.Out.WriteLine(exception.StackTrace);
}
}
}
/// <summary>
/// Just returns this logger (<c>ConsoleLogger</c> is not hierarchical).
/// </summary>
/// <param name="name">Ignored</param>
/// <returns>This ILogger instance.</returns>
public ILogger CreateChildLogger(string name )
{
return this;
}
}
}
1.1 jakarta-avalon-excalibur/csframework/src/cs/Logger/ILogEnabled.cs
Index: ILogEnabled.cs
===================================================================
///
/// Copyright (C) The Apache Software Foundation. All rights reserved.
///
/// This software is published under the terms of the Apache Software License
/// version 1.1, a copy of which has been included with this distribution in
/// the LICENSE.txt file.
///
using System;
namespace Apache.Avalon.Logger
{
/// <summary>
/// Components that need to log can implement this interface to
/// be provided Loggers.
/// </summary>
public interface ILogEnabled
{
/// <summary>
/// Provides a component with a logger.
/// </summary>
/// <param name="logger">The ILogger instance.</param>
void EnableLogging(ILogger logger);
}
}
1.1 jakarta-avalon-excalibur/csframework/src/cs/Logger/ILogger.cs
Index: ILogger.cs
===================================================================
///
/// Copyright (C) The Apache Software Foundation. All rights reserved.
///
/// This software is published under the terms of the Apache Software License
/// version 1.1, a copy of which has been included with this distribution in
/// the LICENSE.txt file.
///
using System;
namespace Apache.Avalon.Logger
{
/// <summary>
/// This is a facade for the different logging subsystems.
/// It offers a simplified interface that follows IOC patterns
/// and a simplified priority/level/severity abstraction.
/// </summary>
public interface ILogger
{
/// <summary>
/// Logs a debug message.
/// </summary>
/// <param name="message">The Message</param>
void Debug( string message );
/// <summary>
/// Logs a debug message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
void Debug( string message, Exception exception);
/// <summary>
/// Determines if messages of priority "debug" will be logged.
/// </summary>
/// <value>True if "debug" messages will be logged.</value>
bool IsDebugEnabled
{
get;
}
/// <summary>
/// Logs an info message.
/// </summary>
/// <param name="message">The Message</param>
void Info( string message );
/// <summary>
/// Logs an info message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
void Info( string message, Exception exception);
/// <summary>
/// Determines if messages of priority "info" will be logged.
/// </summary>
/// <value>True if "info" messages will be logged.</value>
bool IsInfoEnabled
{
get;
}
/// <summary>
/// Logs a warn message.
/// </summary>
/// <param name="message">The Message</param>
void Warn( string message );
/// <summary>
/// Logs a warn message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
void Warn( string message, Exception exception);
/// <summary>
/// Determines if messages of priority "warn" will be logged.
/// </summary>
/// <value>True if "warn" messages will be logged.</value>
bool IsWarnEnabled
{
get;
}
/// <summary>
/// Logs an error message.
/// </summary>
/// <param name="message">The Message</param>
void Error( string message );
/// <summary>
/// Logs an error message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
void Error( string message, Exception exception);
/// <summary>
/// Determines if messages of priority "error" will be logged.
/// </summary>
/// <value>True if "error" messages will be logged.</value>
bool IsErrorEnabled
{
get;
}
/// <summary>
/// Logs a fatal error message.
/// </summary>
/// <param name="message">The Message</param>
void FatalError( string message );
/// <summary>
/// Logs a fatal error message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
void FatalError( string message, Exception exception);
/// <summary>
/// Determines if messages of priority "fatalError" will be logged.
/// </summary>
/// <value>True if "fatalError" messages will be logged.</value>
bool IsFatalErrorEnabled
{
get;
}
/// <summary>
/// Create a new child logger.
/// The name of the child logger is [current-loggers-name].[passed-in-name]
/// </summary>
/// <param name="name">The Subname of this logger.</param>
/// <returns>The New ILogger instance.</returns>
/// <exception cref="System.ArgumentException">If the name has an empty element name.</exception>
ILogger CreateChildLogger( string name );
}
}
1.1 jakarta-avalon-excalibur/csframework/src/cs/Logger/Log4netLogger.cs
Index: Log4netLogger.cs
===================================================================
///
/// Copyright (C) The Apache Software Foundation. All rights reserved.
///
/// This software is published under the terms of the Apache Software License
/// version 1.1, a copy of which has been included with this distribution in
/// the LICENSE.txt file.
///
using System;
using log4net;
namespace Apache.Avalon.Logger
{
/// <summary>
/// The default log4net wrapper class for Logger.
/// </summary>
public class Log4netLogger: ILogger
{
//underlying implementation
private Category logger;
/// <summary>
/// Creates a logger that delegates to specified category.
/// </summary>
/// <param name="logImpl">The Category to delegate to.</param>
public Log4netLogger(Category logImpl)
{
logger = logImpl;
}
/// <summary>
/// Logs a debug message.
/// </summary>
/// <param name="message">The Message</param>
public void Debug(string message )
{
logger.Debug(message);
}
/// <summary>
/// Logs a debug message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void Debug(string message, Exception exception)
{
logger.Debug( message, exception );
}
/// <summary>
/// Determines if messages of priority "debug" will be logged.
/// </summary>
/// <value>True if "debug" messages will be logged.</value>
public bool IsDebugEnabled
{
get
{
return logger.IsDebugEnabled;
}
}
/// <summary>
/// Logs an info message.
/// </summary>
/// <param name="message">The Message</param>
public void Info( string message )
{
logger.Info(message);
}
/// <summary>
/// Logs an info message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void Info( string message, Exception exception)
{
logger.Info( message, exception);
}
/// <summary>
/// Determines if messages of priority "info" will be logged.
/// </summary>
/// <value>True if "info" messages will be logged.</value>
public bool IsInfoEnabled
{
get
{
return logger.IsInfoEnabled;
}
}
/// <summary>
/// Logs a warn message.
/// </summary>
/// <param name="message">The Message</param>
public void Warn(string message )
{
logger.Warn( message );
}
/// <summary>
/// Logs a warn message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void Warn(string message, Exception exception)
{
logger.Warn( message, exception );
}
/// <summary>
/// Determines if messages of priority "warn" will be logged.
/// </summary>
/// <value>True if "warn" messages will be logged.</value>
public bool IsWarnEnabled
{
get
{
return logger.IsWarnEnabled;
}
}
/// <summary>
/// Logs an error message.
/// </summary>
/// <param name="message">The Message</param>
public void Error(string message )
{
logger.Error( message );
}
/// <summary>
/// Logs an error message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void Error(string message, Exception exception)
{
logger.Error( message, exception );
}
/// <summary>
/// Determines if messages of priority "error" will be logged.
/// </summary>
/// <value>True if "error" messages will be logged.</value>
public bool IsErrorEnabled
{
get
{
return logger.IsErrorEnabled;
}
}
/// <summary>
/// Logs a fatal error message.
/// </summary>
/// <param name="message">The Message</param>
public void FatalError(string message )
{
logger.Fatal( message );
}
/// <summary>
/// Logs a fatal error message.
/// </summary>
/// <param name="message">The Message</param>
/// <param name="exception">The Exception</param>
public void FatalError(string message, Exception exception)
{
logger.Fatal( message, exception);
}
/// <summary>
/// Determines if messages of priority "fatalError" will be logged.
/// </summary>
/// <value>True if "fatalError" messages will be logged.</value>
public bool IsFatalErrorEnabled
{
get
{
return logger.IsFatalEnabled;
}
}
/// <summary>
/// Create a new child logger.
/// The name of the child logger is [current-loggers-name].[passed-in-name]
/// </summary>
/// <param name="name">The Subname of this logger.</param>
/// <returns>The New ILogger instance.</returns>
/// <exception cref="System.ArgumentException">If the name has an empty element name.</exception>
public ILogger CreateChildLogger(string name )
{
return new Log4netLogger( Category.GetInstance( logger.Name + "." + name ) );
}
}
}
1.1 jakarta-avalon-excalibur/csframework/src/cs/Logger/NullLogger.cs
Index: NullLogger.cs
===================================================================
///
/// Copyright (C) The Apache Software Foundation. All rights reserved.
///
/// This software is published under the terms of the Apache Software License
/// version 1.1, a copy of which has been included with this distribution in
/// the LICENSE.txt file.
///
using System;
namespace Apache.Avalon.Logger
{
/// <summary>
/// The Null Logger class. This is useful for implementations where you need
/// to provide a logger to a utility class, but do not want any output from it.
/// It also helps when you have a utility that does not have a logger to supply.
/// </summary>
public class NullLogger: ILogger
{
/// <summary>
/// Creates a new <c>NullLogger</c>.
/// </summary>
public NullLogger()
{
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
public void Debug(string message )
{
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
/// <param name="exception">Ignored</param>
public void Debug(string message, Exception exception)
{
}
/// <summary>
/// No-op.
/// </summary>
/// <value>false</value>
public bool IsDebugEnabled
{
get
{
return false;
}
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
public void Info( string message )
{
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
/// <param name="exception">Ignored</param>
public void Info( string message, Exception exception)
{
}
/// <summary>
/// No-op.
/// </summary>
/// <value>false</value>
public bool IsInfoEnabled
{
get
{
return false;
}
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
public void Warn(string message )
{
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
/// <param name="exception">Ignored</param>
public void Warn(string message, Exception exception)
{
}
/// <summary>
/// No-op.
/// </summary>
/// <value>false</value>
public bool IsWarnEnabled
{
get
{
return false;
}
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
public void Error(string message )
{
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
/// <param name="exception">Ignored</param>
public void Error(string message, Exception exception)
{
}
/// <summary>
/// No-op.
/// </summary>
/// <value>false</value>
public bool IsErrorEnabled
{
get
{
return false;
}
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
public void FatalError(string message )
{
}
/// <summary>
/// No-op.
/// </summary>
/// <param name="message">Ignored</param>
/// <param name="exception">Ignored</param>
public void FatalError(string message, Exception exception)
{
}
/// <summary>
/// No-op.
/// </summary>
/// <value>false</value>
public bool IsFatalErrorEnabled
{
get
{
return false;
}
}
/// <summary>
/// Returns this <c>NullLogger</c>.
/// </summary>
/// <param name="name">Ignored</param>
/// <returns>This ILogger instance.</returns>
public ILogger CreateChildLogger(string name )
{
return this;
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>