Log4Net(애플리케이션 통찰력 포함)
Azure Application Insights에 log4net 트레이스를 전송하도록 azure asp.net 웹사이트를 설정하려고 합니다.파란색 콘솔 페이지 뷰 등을 볼 수 있기 때문에 정상적으로 동작하고 있습니다.파일 핸들러를 사용하여 구성한 경우 log4net 트레이스도 볼 수 있지만 애플리케이션 인사이트 핸들러를 사용하도록 log4net을 구성할 때 애플리케이션 인사이트 대시보드에 log4net 엔트리가 표시되지 않으며 빌드 또는 실행 시 오류나 경고가 표시되지 않습니다.대시보드에는 결과가 표시되지 않습니다.Fiddler에서 네트워크트래픽을 확인했는데, 페이지뷰 데이터 등이 어플리케이션인사이트로 전송되고 있는 것을 알 수 있었습니다만, log4net 트레이스 트래픽은 볼 수 없기 때문에, 이것은 설정상의 문제라고 생각됩니다.
또, 메인 프로젝트에서 TelemetryClient()를 시험해 본 결과, 대시보드에 tracetraffic이 표시됩니다.그러나 TelemetryClient는 아직 asp.net 이외의 dll(즉, 별도의 dll에 있는 비즈니스 및 데이터 로직)을 지원하지 않는 것 같기 때문에 이 사용 사례에 맞지 않습니다.
통찰력이나 조언을 해주실 분?
Microsoft용 nuget 패키지를 설치했습니다.어플통찰력Log4NetAppender.dll 이며 Microsoft 를 사용하고 있습니다.어플통찰력 0.13.2-build00132
https://blog.ehn.nu/2014/11/using-log4net-for-application-insights/에 따라 web.config에 다음 항목이 있습니다.
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="aiAppender"/>
</root>
<appender name="aiAppender" type="Microsoft.ApplicationInsights.Log4NetAppender.ApplicationInsightsAppender, Microsoft.ApplicationInsights.Log4NetAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message%newline"/>
</layout>
</appender>
</log4net>
<configuration>
Log4Net Appender의 PreRelease 버전을 설치해 보십시오.
저는 표준 ASP를 만들었습니다.다른 사용자가 작성한 절차에 따른 NET MVC의 예이며, 상기와 같은 문제가 있었습니다.그러나 Application Insights 설명서에 기재되어 있는 몇 가지 절차를 따라 log4net appender용 PreRelease 패키지를 설치하는 것을 발견했습니다.그렇게 하면 효과가 있었습니다. :)
내 경우(기존 웹 애플리케이션에 애플리케이션 통찰력을 추가)Microsoft.ApplicationInsights.Log4NetAppender
나는 추가해야만 했다.Microsoft.ApplicationInsights.Web
NuGet을 사용하여 패키지를 만듭니다.그 후 에서 작성ApplicationInsights.config
InstrumentationKey를 지정해야 합니다.
예: 출원Insights.config
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
<InstrumentationKey>YOUR KEY HERE</InstrumentationKey>
<TelemetryModules>
...
Sitecore 웹사이트에서 Log4Net 로그를 AI로 보내는 것도 문제가 있었습니다.Sitecore는 Log4Net을 자체 구현하고 있기 때문에 AI Nuget 패키지에서는 동작하지 않았습니다.AI에 로그를 보낼 Apprender를 직접 만들었습니다.
public class CustomLogFileAppender : SitecoreLogFileAppender
{
protected override void Append(LoggingEvent loggingEvent)
{
if (Sitecore.Context.Site != null )
{
if(loggingEvent.Level == Level.FATAL)
{
AppsInsightsLogHelper.Critical(loggingEvent.RenderedMessage);
}
if (loggingEvent.Level == Level.ERROR)
{
AppsInsightsLogHelper.Error(loggingEvent.RenderedMessage);
}
if (loggingEvent.Level == Level.WARN)
{
AppsInsightsLogHelper.Warning(loggingEvent.RenderedMessage);
}
if(loggingEvent.Level == Level.INFO)
{
AppsInsightsLogHelper.Info(loggingEvent.RenderedMessage);
}
}
base.Append(loggingEvent);
}
}
sitecore.config:
<log4net>
<appender name="LogFileAppender" type="namespace.CustomLogFileAppender, dll name">
...
</appender>
</log4net>
당신의 log4net 설정은 정확합니다.테스트 웹사이트에서 사용했는데 동작했습니다.또한 Fiddler에서 다른 AI 데이터를 볼 수 있기 때문에 AI도 올바르게 설정되어 있습니다.이 경우 log4net을 찾아야 합니다.Config.XmlConfigurator 속성.이는 어셈블리 수준의 속성이며 log4net 구성을 올바르게 읽으려면 필요할 수 있습니다.
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
프로젝트에 명시되어 있는지 확인하고 다시 시도해 주시겠습니까?
언급URL : https://stackoverflow.com/questions/28800320/log4net-with-application-insights
'programing' 카테고리의 다른 글
오류: 서비스가 잘못되었습니다. (0) | 2023.04.24 |
---|---|
메서드 매개 변수를 변경할 수 있도록 신속하게 설정하시겠습니까? (0) | 2023.04.24 |
각도 지시 - 컴파일, 컨트롤러, 프리링크 및 포스트링크를 사용하는 시기와 방법 (0) | 2023.04.24 |
일반 목록 내의 모든 Null 요소를 한 번에 제거하려면 어떻게 해야 합니까? (0) | 2023.04.24 |
디스크에서 이미 삭제된 여러 파일을 Git repo에서 제거 (0) | 2023.04.24 |