작은 파일 변환 유틸리티를 쓰고 있습니다. 파일을 디렉토리에 놓으면 파일이 자동으로 변환됩니다.NLog에서 런타임 중에 로그 파일 추가/제거
로깅에 NLog를 사용하고 있습니다. NLog.conf을 사용하여 구성한 중앙 로그 파일 외에도 (생성 된 모든 메시지를 수신하는) 각 입력 파일에 대해 하나의 추가 로그 파일을 만들고 비슷한 이름을 사용하는 동안 기록 된 모든 로그 메시지를 포함하고 싶습니다. 변환 프로세스.
런타임 중에 적절한 규칙과 함께 새 파일 대상을 올바르게 추가하는 방법을 알 수없는 것 같습니다. 모든 Logger
개체가 변환 프로세스 중에 새 로그 파일에 쓰길 원합니다.
var logfile = new NLog.Targets.FileTarget();
logfile.FileName = fileName + ".log";
logfile.KeepFileOpen = true;
logfile.Initialize();
var rule = new NLog.Config.LoggingRule("*", logfile);
NLog.LogManager.Configuration.LoggingRules.Add(rule);
NLog.LogManager.ReconfigExistingLoggers();
//
// Proceed with converting file
//
logfile.Flush();
NLog.LogManager.Configuration.LoggingRules.Remove(rule);
NLog.LogManager.ReconfigExistingLoggers();
처럼 뭔가를 시도하지만 어떤 로그 파일이 생성되지 않았다.
무엇이 잘못 되었나요? 어떤 생각?
재 할당과 라인이 매우 중요하다 LogManager.Configuration = 설정; – habakuk
명확히하기 ** LogManager.Configuration = config; ** NLog가 Configuration 속성에 대한 getter 및 setter를 작성한 방식 때문에 이러한 현상이 발생합니다. 그것은 꽤 아니지만 변경된 객체로 다시 설정해야합니다. 속성을 직접 변경할 수는 없습니다. – zshift
이 작업을 끝내려면 끝에 로거 변수를 다시 할당해야했습니다. logger = LogManager.GetCurrentClassLogger(); – Henry