我有两个控制台应用程序A和B。这两个项目作为Azure Webjobs托管。 我配置了控制台,滚动文件和应用程序。通用项目C ConfigManager.cs文件中的Insights追加程序。
A正在调用C.ConfigManager来配置附加程序。 A.Orchestrator能够将消息记录到所有3个附加程序。
B也正在调用C.ConfigManager来配置附加程序。 B.Orchestrator能够将消息记录到控制台和滚动文件附加程序,但不能记录到Application Insights。
我的所有log4net配置几乎都是静态的。 我无法在这里找到根本原因
答案 0 :(得分:0)
您可以尝试使用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,请尝试升级该版本。
答案 1 :(得分:0)
遥测数据不会立即发送到应用程序见解,而是将进行批处理然后发送。
因此,对于控制台应用程序,最好在退出控制台应用程序之前添加一些休眠时间,例如System.Threading.Thread.Sleep(1000)
。
希望有帮助。