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");
}
}
}