【问题标题】:Azure Diagnostic Logs Size LimitationAzure 诊断日志大小限制
【发布时间】:2017-07-24 02:24:10
【问题描述】:

我正在 Azure 中运行 Node.js 应用程序。现有的 Azure Web 应用程序日志记录功能将应用程序日志限制为最大大小,这意味着我无法检索一天前的日志(例如)。我可以从资源浏览器修改一些配置/日志设置。

例如,我可以编辑以下属性:

... 
"httpLogs": {
  "fileSystem": {
    "retentionInMb": 35,
    "retentionInDays": null,
    "enabled": true
  },
  "azureBlobStorage": {
    "sasUrl": null,
    "retentionInDays": null,
    "enabled": false
  }
},
...

我没有看到“applicationLogs”的任何“retentionInDays”或“retentionInMb”属性。

"applicationLogs": {
  "fileSystem": {
    "level": "Off"
  },

是否可以增加应用程序日志的存储时间或大小限制?

【问题讨论】:

    标签: node.js azure logging azure-diagnostics


    【解决方案1】:

    我建议将 STDOUT 和 STDERR 重定向到一个文件,然后你就不用依赖微软来为你捕获和保存它们了:

    var access = fs.createWriteStream('./api.access.log'); process.stdout.write = process.stderr.write = access.write.bind(access);

    【讨论】:

    • createWriteStream 将文件锁定在文件系统中,因此我们无法在应用程序运行时访问该文件。我们必须先停止应用程序才能释放文件,这是不可接受的选择。
    【解决方案2】:

    事实证明,Azure 将 Web 服务器和应用程序日志记录限制为 12 小时,但这不适用于 Node.js 日志。日志文件总数有一个默认限制,设置为 10。

    可以更改以下配置以适应您想要的任何内容,但由于性能受到影响,请注意不要在生产中执行此操作:

    loggingEnabled: true maxLogFileSizeInKB: 128 maxTotalLogFileSizeInKB: 1024 maxLogFiles: 20

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2017-06-04
      相关资源
      最近更新 更多