登录Azure

Dav*_*len 9 log4net azure

我们如何使用与log4net等效的粒度和控制来登录Azure?我们在IIS上运行的网络应用程序中使用log4net,这对我们非常有用.这也是Azure上最好的吗?

我们绝对更喜欢日志文件(而不是数据库条目),但是如果在Azure中有更好的效果,我会接受改进.Trace写入Azure中的表格的方式非常糟糕 - 我们绝对不会那么想.

我更喜欢日志文件的原因是它很容易看到顺序发生了什么,这是我99%的时间所需要的.

这适用于具有多个实例的Azure Web应用程序.如果日志与每个实例不同,那就没问题.

谢谢 - 戴夫

Bre*_*een 11

这很简单.我使用以下log4net配置将日志文件转储到Web应用程序根文件夹中(很容易更改为子文件夹):

<log4net>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
  </root>
  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
    <param name="File" value="my_web.log" />
    <param name="AppendToFile" value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%date{yyyy-dd-MM HH:mm:ss.fff} [%thread] %-5level %logger.%method [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
</log4net>
Run Code Online (Sandbox Code Playgroud)

然后我直接从Visual Studio检查日志文件(双击文件下载它)服务器资源管理器:

Azure网站通过Server Explorer

  • 只输入 value="my_web.log" 安全吗?我担心默认文件夹在网络应用程序中并不是一个安全的依赖项。 (2认同)

Ste*_*ncu 11

我认为在Azure中本地存储日志文件时应该小心,因为这不能保证坚持下去.用于存储网站的VM可以重新映像,日志将丢失.

更好的解决方案是使用Azure诊断结合log4net(对于其他日志记录机制(如NLog)也可以使用).流程在这里是sumarrized:

  1. 将本地存储设置为写入日志文件的角色实例(虚拟机)上的位置.

  2. 将一个元素添加到diagnostics.wadcfg文件,以指示Azure诊断程序在blob存储中创建和使用容器.

  3. 在其中添加元素以指示Azure诊断程序监视LogStorage本地资源位置中的日志记录文件夹.

这样,本地存储的日志将被复制到blob存储.

全文:http://justazure.com/microsoft-azure-diagnostics-part-1-introduction/