我计划在生产环境中使用 Serilog,那么通过 HTTPs 记录所有级别(信息、警告、错误等)是否存在任何性能问题?

I plan to use Serilog in production environment, so is there any performance issue to Log all levels (Info, warning, errors, ...) over HTTPs?

我是 serilog 的新手,我打算在生产环境中使用它,所以通过 HTTPS 将所有日志级别(信息、警告、错误等)发送到 Web 是否存在任何性能问题api,这个 api 只会将日志写入文件,因为我不想在生产服务器上写入日志文件以解决安全问题,除非有开箱即用的方式来加密它们?

与所有事情一样,这取决于。在回答您自己的问题之前,您必须定义您对日志记录和性能的要求。

示例:

  • 您是否需要立即发送日志消息,或者您可以在后台异步发送它们,并延迟接收消息吗?
  • 您需要一条一条发送消息,还是可以分批发送?
  • 您能承受丢失消息的后果吗?如果无法写入日志消息,应用程序是否应该停止?

这些答案将帮助您决定如何配置 Serilog 日志记录管道以及使用(甚至开发)哪些接收器。

检查您计划使用的接收器中可用的配置选项(例如 batchPostingLimitperiodqueueLimit 如果您使用的是 Serilog.Sinks.Http), and take a look at the Serilog.Sinks.Async,它允许如果您的接收器没有实现开箱即用的功能,您可以将日志记录委托给后台线程。

至于性能,您必须对其进行测量并确定您的应用程序可接受的性能。