using System;
using System.Collections.Generic;
using System.Text;
using log4net;
using log4net.Config;
using log4net.Core;
using log4net.Appender;
using log4net.Layout;
using log4net.Repository.Hierarchy;
namespace Foo.Platform
{
public class Logger
{
static Logger()
{
BasicConfigurator.Configure(CreateAndConfigureRollingFileAppender());
}
///
/// Returns the Log4Net Interface
///
/// Object Type to pass in to create Logger for
/// Log4Net Interface
public static ILog GetLog4NetInterface(Type type)
{
return LogManager.GetLogger(type);
}
///
/// Creates and Configures teh RollingFileAppender *Configuration goes on here *
///
/// RollingFileAppender Class to be used in Configuring Log4Net
static private RollingFileAppender CreateAndConfigureRollingFileAppender()
{
RollingFileAppender fileAppender = new RollingFileAppender();
fileAppender.Layout = new PatternLayout(PatternLayout.DetailConversionPattern);
// Locking Minimal allows us to run Log4Net from multiple processes
fileAppender.LockingModel = new FileAppender.MinimalLock();
fileAppender.File = (Env.GetLogDirectory() + @"\LogServer.log");
fileAppender.AppendToFile = true;
#if DEBUG
fileAppender.Threshold = Level.All;
#else
fileAppender.Threshold = Level.Error;
#endif
fileAppender.MaximumFileSize = "5MB";
fileAppender.MaxSizeRollBackups = 3;
fileAppender.ActivateOptions();
return fileAppender;
}
}
}