log4net
log4net.config配置文件
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> configSections> <log4net> <root> <level value="ALL" /> <appender-ref ref="LogFileAppender" /> root> <appender name ="LogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value ="App_Data\"/> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="10240" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyy-MM-dd'.txt'" /> <param name="RollingStyle" value ="Date" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date 线程ID:[%thread] 日志级别:[%-5level] : [%message]%newline"/> layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="FATAL" /> filter> appender> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline">conversionPattern> layout> appender> log4net> configuration>
注册
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/log4net.config")));
帮助类
using log4net; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AZ.EPricing.Utility { public class LogHelper { private ILog _log4Net = null; private const string DEFAULT_LOGGER_NAME = "Logger"; ////// Prevents a default instance of the class from being created. /// /// The log4net instance to be used. private LogHelper(ILog log4NetInstance) { _log4Net = log4NetInstance; } /// /// Gets a logger with the specified configuration name. /// /// Name of the logger in the configuration. /// The logger obtained. /// Thrown when no logger with the specified configuration name was found. public static LogHelper GetLogger(string configName) { var logger = LogManager.GetLogger(configName); if (logger == null) { throw new ArgumentException(string.Format("No logger configuration named '{0}' was found in the configuration.", configName), "configName"); } return new LogHelper(logger); } /// /// Gets the default. /// public static LogHelper Default { get { return GetLogger(DEFAULT_LOGGER_NAME); } } /// /// Writes an information level logging message. /// /// The message to be written. public void WriteInfo(object message) { _log4Net.Info(message); } /// /// Writes a warning level logging message. /// /// The message to be written. public void WriteWarning(object message) { _log4Net.Warn(message); } /// /// Writes a warning level logging message. /// /// The message to be written. /// The exception. public void WriteWarning(object message, System.Exception exception) { _log4Net.Warn(message, exception); } /// /// Writes the error. /// /// The message to be written. public void WriteError(object message) { _log4Net.Error(message); } /// /// Writes the error level logging message.. /// /// The message to be written. /// The exception. public void WriteError(object message, System.Exception exception) { _log4Net.Error(message, exception); } /// /// Writes the fatal error level logging message.. /// /// The message to be written. public void WriteFatal(object message) { _log4Net.Fatal(message); } /// /// Writes the fatal error level logging message.. /// /// The message to be written. /// The exception. public void WriteFatal(object message, System.Exception exception) { _log4Net.Fatal(message, exception); } public void DeleteLog() { string logDirPath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Log"); if (!Directory.Exists(logDirPath)) return; int days = 30; foreach (string filePath in Directory.GetFiles(logDirPath)) { DateTime dt; DateTime.TryParse(Path.GetFileNameWithoutExtension(filePath).Replace(@"Log\", "").Replace(".", "-"), out dt); if (dt.AddDays(days).CompareTo(DateTime.Now) < 0) { File.Delete(filePath); } } } } }
调用
LogHelper.Default.WriteInfo("1000 Success");