【问题标题】:How to enable logger whitelisting for backend loggers other than console in elixir?如何在 elixir 中为除控制台以外的后端记录器启用记录器白名单?
【发布时间】:2018-12-12 20:04:51
【问题描述】:

例如在 config.exs

config :logger, :console,
  format: "$time $metadata[$level] $message\n",
  metadata: :all, 
  level: :info

会起作用,但是

config :logger, :any_other,
  format: "$time $metadata[$level] $message\n",
  metadata: :all, 
  level: :info

没有

【问题讨论】:

    标签: logging elixir


    【解决方案1】:

    您必须为其他记录器明确指定backend;例如,使用LoggerFileBackend 记录到文件:

    config :logger,
      backends: [
        {LoggerFileBackend, :any_other}
      ]
    
    config :logger, :any_other,
      format: "$time $metadata[$level] $message\n",
      metadata: :all, 
      level: :info
    

    不要忘记将相应的包包含到mix

    【讨论】:

    • 我已经指定了你提到的后端,它适用于元数据:[:模块,:id],元数据过滤器:[my_logger:true],但是当我想要元数据时::所有它不起作用对于控制台以外的任何记录器
    • 我不知道为什么 specific 后端不理解metadata: :all。这取决于后端如何处理metadata 参数。
    猜你喜欢
    • 2019-11-03
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2020-07-12
    相关资源
    最近更新 更多