2016-07-01 3 views
0

그래서 솔루션에 여러 프로젝트가 있습니다. 동일한 프로젝트에서 로그 도우미 클래스를 만들 수 있다는 것을 알고 있습니다. 그러나이 모든 프로젝트를 확장 할 수 있는지 궁금 해서요log4net 클래스 라이브러리에서 로그를 출력하지 않습니다.

각 프로젝트에서 프로젝트 이름에 log4net 로거베이스를 가져올 수 있도록 클래스 라이브러리를 만들었습니다.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.CompilerServices; 
using System.Text; 
using System.Threading.Tasks; 

namespace Log4NetLogHelper 
{ 
    public class LogHelper 
    { 
     public static log4net.ILog GetLogger([CallerFilePath]string filename = "") 
     { 
      return log4net.LogManager.GetLogger(filename); 
     } 
    } 
} 

도우미 클래스의 파일 이름을 확인했는데 정확했습니다. 그러나 로그 출력은 없습니다. (아무것도 파일에 기록되지 않은 등). 헬퍼 클래스를 사용하지 않으면 log4net이 제대로 작동하므로 99.99 %가 내 설정이 아님을 확신합니다.

using Log4NetLogHelper; 

[assembly: log4net.Config.XmlConfigurator(Watch =true)] 

namespace A 
{ 
    public class B 
    { 
     private static readonly log4net.ILog log = LogHelper.GetLogger(); 
     static void Main(string[] args) 
     { 
      log.Error("test"); 
     } 
    } 
} 

답변

0

나는 그것을 얻었습니다. 문제는 내 도서관 프로젝트에 [assembly: log4net.Config.XmlConfigurator(Watch =true)]을 넣는 것을 잊었다는 것입니다.