문제

내가 쓴다.NET DLL 는 다른 응용 프로그램에서 사용하시겠습니까?을 사용하고 싶 log4net 지만,필요하의 위치를 지정한 로그 파일에서 런타임에는 다른 응용 프로그램.

난 항상 사용 log4net 가장 간단한 방법으로 대한 WinForms 프로젝트이지만,이후 프로젝트지 않는 응용 프로그램이 있습니다.config,내 호출 또한 응용 프로그램 중 하나가 없습니다(그것도 없습니다.NET),하려고 했 읽는 방법에 대해 조금 log4net 작동 및 설정하려고 그것을 사용하지 않고.config 파일에서 모두.

나는 그것을 가지고 있는 단계에 컴파일하고 종류의 준수하는 내 작은 이해의 log4net 지만,그것을 쓰지 않는 로그 파일입니다.

여기에 나는 지금까지,할 수 있는 사람을 지적한 나의 눈부신 오류/오해,또는 다른 말은 더 나은 방법으로 로그에서 내 dll?

    private log4net.Core.ILogger _ilogger;
    private ILog _logger;

    public void Initialize(String LogFileName)
    {
        log4net.Repository.ILoggerRepository Repo = null;
        try {
            Repo = log4net.LogManager.GetRepository(Assembly.GetExecutingAssembly().FullName);

        } catch (log4net.Core.LogException) {
            //ignore, domain not yet created
        }

        if (Repo == null) {
            Repo = log4net.LogManager.CreateRepository(Assembly.GetExecutingAssembly().FullName);

            log4net.Appender.RollingFileAppender appender = new log4net.Appender.RollingFileAppender();
            appender.Layout = new log4net.Layout.PatternLayout("%d - %m%n");
            appender.File = LogFileName;
            appender.MaxSizeRollBackups = 10;
            appender.MaximumFileSize = "100MB";
            appender.AppendToFile = true;
            appender.Threshold = log4net.Core.Level.Debug; //NEW: set level to Debug
            appender.ActivateOptions();

            Repo.Threshold = log4net.Core.Level.Debug; //NEW: set level to Debug

            log4net.Config.BasicConfigurator.Configure(Repo, appender);
        }

       // This doesn't seem to create the interface I need for logging
        _ilogger = Repo.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName);

       // This doesn't seem to write to the log file for some reason.
        _logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName);
        _logger.Debug("Application started");
    }

감사합니다!

도움이 되었습니까?

해결책

편집 업데이트합니다.다시 읽는 질문입니다.그것은 다음과 같신 전화의 오버로드된 버전이 (에서 전달의 세부 사항을 config 파일)-당신은 기본적으로만 구성하고 싶은 로깅 내에서 COM DLL?

농담으로 나는 구글 log4com 고 .나는 그것을 사용하지 않지만 그것은 가치가 있을 수도 있습 a 보!

다른 팁

내가 생각하는 대답이 필요 없는 새로운 저장소에서 모두.나는 그냥 만드는 사정이 너무 복잡합니다.이 버전은 사람을 죽는 것을 잘 작동:

public void Initialize(String LogFileName)
    {
        log4net.Appender.RollingFileAppender appender = new log4net.Appender.RollingFileAppender();
        appender.Layout = new log4net.Layout.PatternLayout("%d - %m%n");
        appender.File = LogFileName;
        appender.MaxSizeRollBackups = 10;
        appender.MaximumFileSize = "100MB";
        appender.AppendToFile = true;
        appender.Threshold = log4net.Core.Level.Debug;
        appender.ActivateOptions();
        log4net.Config.BasicConfigurator.Configure(appender);

        _logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName);
        _logger.Debug("Application started");
    }

도 명시적으로 설정 레벨로 디버그에서 모두 기록하고 추가.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top