C# SDK에 log4net을 사용하고 있으며 기존 구현 (SDK 및 클라이언트)에 대해서는 다음 코드 스 니펫 (예)을 참조하십시오.C# log4net logger factory
SDK에 로그인 가능하도록 설정하려고합니다.
SDK는 내부적으로 log4net을 사용하지만 클라이언트가 다른 로깅 프레임 워크로 교체 할 방법이 없습니다.
나는 ILogger 인터페이스를 사용하여 클라이언트가이를 무시할지 선택할 수있게하고 싶습니다.
SDK의 기존 사용자에게 영향을주지 않으면 서 C# 2.0 Framework/Visual Studio 2005에서이 문제를 해결하는 방법에 대해 전문가의 도움을받을 수 있습니까?
ILog 인터페이스를 작성하고 재정의를 사용하는 방법은 무엇입니까?
도와주세요.
// SDK Code Snippet
// LogManagerWrapper
using System;
using log4net;
namespace SDK
{
public static class LogManagerWrapper
{
public static ILog GetLogger(Type type)
{
if (LogManager.GetCurrentLoggers().Length == 0)
{
LoadConfig();
}
return LogManager.GetLogger(type);
}
private static void LoadConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
}
}
// Client Code Snippet
using System;
using log4net;
using SDK;
namespace Client
{
class Program
{
private static readonly ILog logger = LogManagerWrapper.GetLogger(typeof(Program));
private void Method()
{
try
{
Random rndm = new Random();
int number = rndm.Next(1000);
decimal Money = 100/number;
decimal Cash = 100/Money;
}
catch(Exception ex)
{
logger.Debug(ex.Message);
}
}
static void Main()
{
logger.Info("Start Time: " + DateTime.Now.ToString("dddd, MMMM dd, yyyy h:mm:ss tt"));
Program prgm = new Program();
prgm.Method();
logger.Info("End Time: " + DateTime.Now.ToString("dddd, MMMM dd, yyyy h:mm:ss tt"));
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
}
// Client App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="ClientLog.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
</configuration>
2005 VS 나이와 함께 작동합니다 이전 버전을 얻을 수 있다고 생각? –