我有两个控制台应用程序A和B.这两个项目作为Azure Webjobs托管。我配置了控制台,滚动文件和应用程序。 Insights appender在一个公共项目C,ConfigManager.cs文件中。
A正在调用C.ConfigManager来配置appender。 A.Orchestrator能够将消息记录到所有3个appender。
B也调用C.ConfigManager来配置appender。 B.Orchestrator能够将消息记录到控制台和滚动文件追加器,但不能记录到Application Insights。
我的所有log4net配置都非常静态。我无法找到可能是根本原因的地方
您可以尝试使用log4net的内部调试:
像这样的东西:
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
然后写入文件:
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\users\desktop\log.txt" />
</listeners>
</trace>
</system.diagnostics>
或者,您可以检查ApplicationInsights的版本。如果它比AILog4netAppender旧,那么尝试升级版本。
遥测数据不会立即发送到应用程序洞察,它将批量发送然后发送。
所以对于控制台应用程序,你最好在控制台应用程序退出之前添加一些像System.Threading.Thread.Sleep(1000)
这样的休眠时间。
希望能帮助到你。