로깅을 위해 SLF를 사용하는 프로그램이 있습니다. 이 프로그램은 연중 무휴로 운영되며 나중에 검토 할 수 있도록 매일 밤 원격 서버에 로그 파일을 업로드하고 싶습니다.SLF 파일 잠금 해제
내 질문은 어떻게 프로그램을 닫지 않고 로그 파일 잠금을 해제합니까?
로깅을 일시 중단하고, 로그를 업로드하고, 로그 파일을 삭제하거나, 내용을 지우고, 로깅을 재개하려고합니다.
ILogger logger = LoggerService.GetLogger(typeof(TaskScheduler).FullName);
// Other initialization here
foreach (var task in managedTasks.OrderBy(t => t.Priority))
{
if (task.NextRunTime <= DateTime.Now)
{
dataManager.CurrentStatus = AppStatus.Running;
if (task.Name == "Log Sender")
{
logger = null;
}
// Run the task
if (task.Name == "Log Sender")
{
logger = LoggerService.GetLogger(typeof(TaskScheduler).FullName);
}
dataManager.CurrentStatus = AppStatus.Idle;
}
}
현재이 작업을 수행 할 때 파일이 여전히 작업 스케줄러에 의해 잠겨 있기 때문에 여전히 IOException이 발생합니다.
편집 : 나는 도움이되는 경우 log4net 이상의 SLF를 사용하고 있습니다.
로그 파일을 해제하고 나중에 로깅을 재개 할 수있는 사용자 지정 로그 작성기를 작성하십시오. – usr
"SLF"란 무엇입니까? –
안녕하세요 John, SLF는 단순 로깅 Facade입니다. http://www.codeproject.com/Articles/36447/A-Fa-c3-a7ade-for-Simple-and-Framework-Independent – Ben