상세 컨텐츠

본문 제목

윈도우 작업 스케줄러로 프로그램 실행 시 라이브러리가 작동하지 않는 이유

IT 정보

by 내행복 2023. 11. 21. 15:30

본문

알쓸신잡 - https://koreatmi.tistory.com/

 

 

 

목차

  1. 서론
  2. 작업 스케줄러의 기본 설정
  3. 상대 경로와 절대 경로의 중요성
  4. Log4net 설정 파일의 경로 문제
  5. 해결 방안 및 모범 사례
  6. 결론

1. 서론

윈도우 환경에서 작업 스케줄러를 통해 프로그램을 실행하는 경우, 특히 IT 개발자들 사이에서 흔히 마주치는 문제 중 하나는 일부 라이브러리가 제대로 작동하지 않는 것입니다. 이 글에서는 Log4net과 같은 라이브러리가 왜 작동하지 않는지에 대한 이유와 해결 방안을 알아보겠습니다.

2. 작업 스케줄러의 기본 설정

윈도우의 작업 스케줄러는 기본적으로 'C:\Windows\System32'를 응용 프로그램의 작업 폴더로 설정합니다. 이 설정은 많은 프로그램들이 작동하는데 필수적인 환경을 제공하지만, 동시에 몇 가지 문제를 야기할 수 있습니다.

3. 상대 경로와 절대 경로의 중요성

프로그램을 개발할 때 상대 경로를 사용하는 것은 편리하지만, 작업 스케줄러를 사용하는 경우 문제가 될 수 있습니다. 상대 경로를 사용하면, 작업 스케줄러가 기본적으로 설정하는 작업 폴더 때문에 필요한 파일을 찾지 못할 수 있습니다.

4. Log4net 설정 파일의 경로 문제

Log4net와 같은 라이브러리는 설정 파일의 위치를 정확하게 지정해야 합니다. 상대 경로를 사용할 경우, 설정 파일을 찾지 못하고 따라서 라이브러리가 제대로 작동하지 않는 문제가 발생할 수 있습니다.

5. 해결 방안 및 모범 사례

이 문제를 해결하기 위해서는 설정 파일의 경로를 절대 경로로 설정해야 합니다. 절대 경로를 사용하면, 작업 스케줄러가 어느 위치에서든 정확한 파일 위치를 찾을 수 있게 됩니다.

 var log4NetConfigDirectory =
     AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory;
 var log4NetConfigFilePath = Path.Combine(log4NetConfigDirectory, "log4net.config");
 log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(log4NetConfigFilePath));

 

 

관련글 더보기