首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将日志从Azure Web App写入LogEntries

无法将日志从Azure Web App写入LogEntries
EN

Stack Overflow用户
提问于 2015-07-24 00:44:57
回答 2查看 825关注 0票数 3

在Asp.Net Web应用程序(版本5)中,我试图将日志发送到LogEntries,但无法发送。使用相同的代码和配置,我可以成功地从localhost发送日志。

这是我用来发送日志的代码(使用NLog:)

代码语言:javascript
复制
private static Logger log = LogManager.GetCurrentClassLogger();

public static void LogString(string message)
{
    log.Error(builder.ToString());
}

这是web.config配置:

代码语言:javascript
复制
<appSettings>
    <add key="Logentries.Token" value="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" />
</appSettings>

<nlog>
<extensions>
  <add assembly="LogentriesNLog" />
</extensions>
<targets>
  <target name="logentries" type="Logentries" debug="true" httpPut="false" ssl="false" layout="${date:format=ddd MMM dd} ${time:format=HH:mm:ss} ${date:format=zzz yyyy} ${logger} : ${LEVEL}, ${message}" />
</targets>
<rules>
  <logger name="*" minLevel="Debug" appendTo="logentries" />
</rules>

当我在生产环境中作为Azure Web应用程序运行此代码时,我在LogEntries控制台上看不到任何日志。当我在localhost上运行它时,它运行成功。

我还尝试使用WebRequest类向google.com发出一个简单的http请求,可以从Azure上的服务器获得200个请求。所以我认为Azure应用程序可以访问互联网,但由于某些原因不能/不能访问LogEntries服务器。

我如何诊断这个问题?

EN

回答 2

Stack Overflow用户

发布于 2015-07-24 01:06:13

如果你使用的是Azure WebSite,标准的系统EventLog是不存在的。因此,这可能是您无法应用日志的问题。

这是你在Azure网站上可用的所有选项的detailed overview

票数 0
EN

Stack Overflow用户

发布于 2015-09-25 10:12:55

对不起,这有点老了,但可能是给未来的读者看的。在Azure Webapps上运行LogEntries时,我遇到了以下问题。1)文档的配置设置顺序错误;它仅在检查了自己的配置后才读取Azure门户设置和应用程序设置。因此,如果您在目标行上有一个标记,它将使用该标记并忽略应用程序设置。2) LogentriesCore和LogentriesNlog必须在应用程序文件夹中,而不是NLog.dll的位置。我之所以注意到这一点,是因为我正在使用一个共享库中的日志,并且我必须将对LogentriesCore和LogentriesNLog的引用添加到使用该库的项目中,即使他们不应该关心这一点。

为了诊断问题,我做了以下这些事情: 1)在webapp中设置跟踪(在我们的例子中是转到Blob存储)。只需使用Trace.Writeline并在Azure门户中设置跟踪即可。2)创建我的记录器时,我首先打开异常: LogManager.ThrowExceptions = true;Logger = LogManager.GetCurrentClassLogger();3)在配置中的Logentries目标行中打开debug:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31593411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档