You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vapor Logger日志无法写入系统日志问题求助

问题解决:Vapor自定义Logger无法输出Debug日志到控制台及系统日志

问题分析

你遇到两个核心问题:

  • 设置Logger级别为.debug后,控制台仍只显示INFO级日志
  • 日志无法输出到macOS系统日志(system.log)

解决方案

1. 修复控制台Debug日志不显示问题

默认情况下Vapor的Logger会自动添加ConsoleHandler,但自定义Logger时若配置不当,可能导致日志级别不生效。另外你的路由代码中日志字符串存在语法错误(未闭合引号),这也会影响日志输出。

修正代码:

配置文件

import Vapor

var logger = Logger(label: "com.amourinetech.realtor")
// 设置日志级别为.debug
logger.logLevel = .debug
// 显式添加控制台输出处理器,确保级别规则生效
logger.addHandler(ConsoleHandler.standardOutput(label: logger.label))
app.logger = logger

路由文件

func routes(_ app: Application) throws {
    app.get("hello") { req async -> String in
        // 修正引号未闭合的语法问题
        app.logger.debug("Realtor says 'Hello Ric!'")
        return "Hello, world!"
    }
    
    try app.register(collection: RealtorController())
}

2. 让日志输出到macOS系统日志

Vapor默认Logger不会自动输出到系统日志,需要添加OSLogHandler来实现:

配置代码:

import Vapor
import OSLog

var logger = Logger(label: "com.amourinetech.realtor")
logger.logLevel = .debug

// 保留控制台输出
logger.addHandler(ConsoleHandler.standardOutput(label: logger.label))

// 添加系统日志输出处理器
let osLog = OSLog(subsystem: "com.amourinetech.realtor", category: "Vapor")
logger.addHandler(OSLogHandler(osLog: osLog))

app.logger = logger

配置完成后,你可以通过Mac的「控制台」应用,搜索com.amourinetech.realtor或分类名Vapor来找到对应日志。

内容的提问来源于stack exchange,提问作者Frederick C. Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:57:46