웹 애플리케이션에서 Log4Net 구성
이 코드와 아래 구성 파일이 있습니다.
ILog log = LogManager.GetLogger(typeof(MyClass));
log.Debug("Testing");
TestProj
디렉토리는 생성되지 않으며 내가 생성하면 TestLog.txt
파일도, 로그도 없습니다.
어떤 생각?
감사,
구성 파일
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\TestProj\\TestLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
당신은의 Configure
기능 을 호출해야 합니다XmlConfigurator
log4net.Config.XmlConfigurator.Configure();
첫 번째 loggin 호출 전에 호출하거나 Global.asax에서 다음과 같이 호출하십시오.
protected void Application_Start(Object sender, EventArgs e) {
log4net.Config.XmlConfigurator.Configure();
}
이를 수행하는 또 다른 방법은 웹 애플리케이션의 어셈블리 정보에 다음 행을 추가하는 것입니다.
// Configure log4net using the .config file
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Shriek와 비슷합니다.
1 : AssemblyInfo 클래스에 다음 줄 추가
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
2 : 다음 .Net Framework 4 Client Profile
과 같이 사용하지 마십시오. Target Framework
(그렇지 않으면 컴파일되지 않을 것이기 때문에 이것이 괜찮다고 생각합니다)
3 : 프로그램에서 아주 일찍 로그인하십시오. 그렇지 않으면 일부 시나리오에서 제대로 초기화되지 않습니다 ( log4net FAQ 에서 자세히 알아보기 ).
따라서 응용 프로그램을 시작하는 동안 Global.asax에 기록하십시오.
public class Global : System.Web.HttpApplication
{
private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof(Global));
protected void Application_Start(object sender, EventArgs e)
{
Log.Info("Startup application.");
}
}
4 : 주어진 경로에 파일과 폴더를 만들 수있는 권한이 있는지 확인하십시오 (폴더 자체도 존재하지 않는 경우).
5 : 제공된 나머지 정보는 괜찮아 보입니다.
종종 이것은 누락 된 권한 때문입니다. 로컬 IIS 응용 프로그램 풀이 실행되는 Windows 계정에 응용 프로그램 디렉터리에 대한 쓰기 권한이 없을 수 있습니다. 어딘가에 디렉토리를 만들고 모든 사람에게 쓰기 권한을 부여하고 log4net 구성이 해당 디렉토리를 가리 키도록 할 수 있습니다. 그런 다음 여기에 로그 파일이 생성되면 앱 풀이 쓸 수 있도록 원하는 로그 디렉터리에 대한 권한을 수정할 수 있습니다.
Another reason could be an uninitialized log4net. In a winforms app, you usually configure log4net upon application start. In a web app, you can do this either dynamically (in your logging component, check if you can create a specific Ilog logger using its name, if not -> call configure()) or again upon application start in global.asax.cs.
I also had the similar issue. Logs were not creating.
Please check logger attribute name should match with your LogManager.GetLogger("name")
<logger name="Mylog">
<level value="All"></level>
<appender-ref ref="RollingLogFileAppender" />
</logger>
private static readonly ILog Log = LogManager.GetLogger("Mylog");
참고URL : https://stackoverflow.com/questions/10204171/configure-log4net-in-web-application
'Nice programing' 카테고리의 다른 글
Linux에서 홈 디렉토리 가져 오기 (0) | 2020.11.26 |
---|---|
RSpec stubbed 메서드가 순서대로 다른 값을 반환 할 수 있습니까? (0) | 2020.11.26 |
키 / 값 쌍을 얻기 위해 Javascript에서 JSON 응답 구문 분석 (0) | 2020.11.26 |
'잘못된 업데이트 : 섹션 0의 잘못된 행 수 (0) | 2020.11.26 |
Youtube api v3 사용자 동영상 목록 가져 오기 (0) | 2020.11.26 |