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
相关产品推荐
相关产品推荐

