[英]Azure AppInsight with Log4Net
我一直在尝试使用Log4Net而不是默认api Telemetry客户端在Azure AppInsights中编写日志(跟踪,信息和异常)。 当我从VS2013运行应用程序时,既没有收到任何错误消息,也没有看到Azure门户中的日志。
请帮我弄清楚这个问题。
注意:我正在将Log4net追加程序用于AppIinsights。 Web.Config中
<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>
MVC控制器
public class HomeController : Controller
{
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public ActionResult Index()
{
//Trace.TraceInformation("Home accessed at : {0}", DateTime.UtcNow);
Log.Info(string.Format("Home accessed at : {0}", DateTime.UtcNow));
return View();
}
}
问候,拉贾兰。
如果您没有看到任何 log4net输出,则我想您缺少一些log4net启动代码,如下所示:
log4net.Config.XmlConfigurator.Configure();
您可能希望在某个地方的启动类/代码中使用它。 否则,log4net将无法读取web.config中的配置。
除了来自@JohnGardner的答案外,您还可以按以下方式在您的AssemblyInfo.cs文件中添加一行:-
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
在以下问题中将对这两种方法进行更多讨论:-
在讨论的某个地方的评论中,有一个指向log4net FAQ的链接,其中涉及“我什么时候应该记录第一条消息?”问题中的区别:-
https://logging.apache.org/log4net/release/faq.html#first-log
我发现这两个都对我有进一步的用途。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.