ServiceStack 4.5를 사용하여 새 프로젝트를 시작합니다. 프로그래밍 방식으로 log4net을 구성 할 수있는 방법이 있습니까? 내가 찾은 문서에서ServiceStack 4.5 프로그래밍 방식으로 log4net 구성
LogManager.LogFactory = new Log4NetFactory(configureLog4Net: true);
이걸 AppHost 클래스의 생성자에 추가했습니다. 그러나 이것은 App.config 파일에 구성을 저장한다고 가정합니다 (Windows 서비스에서 자체 호스팅을 수행하고 있습니다). 내가 NHibernate에 사용하고 (
나는 여러 로그를 사용하기 때문에private static void CreateFileAppender(ref Logger bedInventoryLogger, string logFilePath, Level logLevel, int maxFileSizeInMb, bool filterNh)
{
var filePatternLayout = new PatternLayout
{
ConversionPattern = "%date; [%thread]; %-5level; %logger; [%type{1}.%method]; - %message%newline"
};
filePatternLayout.ActivateOptions();
var bediLogFileAppender = new RollingFileAppender
{
File = logFilePath,
AppendToFile = true,
MaximumFileSize = $"{maxFileSizeInMb}MB",
MaxSizeRollBackups = 5,
RollingStyle = RollingFileAppender.RollingMode.Size,
LockingModel = new FileAppender.MinimalLock(),
Layout = filePatternLayout,
StaticLogFileName = true,
Threshold = logLevel
};
if (filterNh)
{
bediLogFileAppender.AddFilter(new LoggerMatchFilter
{
LoggerToMatch = "NHibernate",
AcceptOnMatch = false
});
bediLogFileAppender.AddFilter(new LoggerMatchFilter
{
LoggerToMatch = "NHibernate.SQL",
AcceptOnMatch = false
});
bediLogFileAppender.AddFilter(new LoggerMatchFilter
{
LoggerToMatch = "FluentNHibernate",
AcceptOnMatch = false
});
}
bediLogFileAppender.ActivateOptions();
bedInventoryLogger.AddAppender(bediLogFileAppender);
}
가, ETD를 펜더 및 로깅 자 NHibernate를 해제하고 싶었 : 다른 프로젝트에서
나는 싱글을 쓴 다음 구성을 수행 할 Log4Net API를 사용 4 ORM 등) 등 내가 C#에서 XML보다 구성을하는 것이 더 편리하다는 것을 알았습니다.
ServiceStack에 연결하거나 Log4Net을 직접 사용하는 것이 더 좋습니까?