Configuration &引用;流利的;Log4Net
您好,我正在尝试在不使用XML配置的情况下设置log4net:Configuration &引用;流利的;Log4Net,configuration,log4net,fluent,Configuration,Log4net,Fluent,您好,我正在尝试在不使用XML配置的情况下设置log4net: public void InitLogger() { //Create exception log file if it haven't been created var exceptionLogFile = new FileInfo(System.Configuration.ConfigurationManager.AppSettings["ExceptionLogFilePath"
public void InitLogger()
{
//Create exception log file if it haven't been created
var exceptionLogFile = new FileInfo(System.Configuration.ConfigurationManager.AppSettings["ExceptionLogFilePath"]);
if (!exceptionLogFile.Exists)
{
exceptionLogFile.Create();
}
//configure log4net
var smtpAppender = new SmtpAppender
{
SmtpHost = "",
Authentication = SmtpAppender.SmtpAuthentication.None,
BufferSize = 512,
From = "",
To = "",
Layout = new PatternLayout(""),
Lossy = true,
Evaluator = new LevelEvaluator(Level.Error)
};
var fileAppender = new FileAppender
{
File = System.Configuration.ConfigurationManager.AppSettings["ExceptionLogFilePath"],
AppendToFile = true,
Layout = new PatternLayout(""),
LockingModel = new FileAppender.MinimalLock() //use the minimal locking model that allows multiple processes to write to the same file
};
BasicConfigurator.Configure(smtpAppender);
}
我的问题是我想使用两个appender(smtp和文件)。使用
我可以设置初始值,但我还需要设置文件追加器。你知道为什么要这样做吗
感谢您的时间:)在这个场景中,您希望获得记录器的实例,然后添加附加器。之后,只需配置存储库。即 在VB中:
Public Class Test
Private Shared ReadOnly _logger As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType)
Sub InitLogger()
Dim logger = CType(_logger.Logger, log4net.Repository.Hierarchy.Logger)
Dim fileAppender = New log4net.Appender.FileAppender() With { _
.File = "", _
.AppendToFile = True, _
.Layout = New log4net.Layout.PatternLayout(""), _
.LockingModel = New log4net.Appender.FileAppender.MinimalLock() _
}
logger.AddAppender(fileAppender)
Dim repository As log4net.Repository.ILoggerRepository = log4net.LogManager.GetRepository()
log4net.Config.BasicConfigurator.Configure(repository)
End Sub
End Class
在C#中:
Public Class Test
Private Shared ReadOnly _logger As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType)
Sub InitLogger()
Dim logger = CType(_logger.Logger, log4net.Repository.Hierarchy.Logger)
Dim fileAppender = New log4net.Appender.FileAppender() With { _
.File = "", _
.AppendToFile = True, _
.Layout = New log4net.Layout.PatternLayout(""), _
.LockingModel = New log4net.Appender.FileAppender.MinimalLock() _
}
logger.AddAppender(fileAppender)
Dim repository As log4net.Repository.ILoggerRepository = log4net.LogManager.GetRepository()
log4net.Config.BasicConfigurator.Configure(repository)
End Sub
End Class
public class Test
{
private static readonly log4net.ILog _logger = log4net.LogManager.GetLogger(System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType);
public void InitLogger()
{
var logger = (log4net.Repository.Hierarchy.Logger)_logger.Logger;
var fileAppender = new log4net.Appender.FileAppender {
File = "",
AppendToFile = true,
Layout = new log4net.Layout.PatternLayout(""),
LockingModel = new log4net.Appender.FileAppender.MinimalLock()
};
logger.AddAppender(fileAppender);
log4net.Repository.ILoggerRepository repository = log4net.LogManager.GetRepository();
log4net.Config.BasicConfigurator.Configure(repository);
}
}