Mantis - 新的文件日志驱动程序
Mantis 是一个用 V 编写的类型安全的 Web 框架,强调明确的、无魔法的代码。
在这篇文章中,我们将探索新的基于文件的日志系统,并了解它如何与其他 Mantis 功能无缝集成。
文件记录
要记录文件,您只需通过指定可用的“文件”日志通道来配置您的 http 应用程序。
module main import khalyomede.mantis.http { create_app, App, Response } import khalyomede.mantis.http.route import khalyomede.mantis.http.response import khalyomede.mantis.logging { Log } import khalyomede.mantis.logging.channel { File } fn main() { app := create_app( log: { channel: File{ path: "logs/mantis.log" } } routes: [ route.get(path: "/", callback: fn (app App) !Response { app.log.debug("new user on the home page")! return response.html(content: "hello world") }) ] ) app.serve() or { panic(err) } }
结合错误处理
错误处理和日志记录协同工作,帮助您跟踪和调试生产中的问题。以下是配置两者的方法:
module main import khalyomede.mantis.http { create_app, App, Response, ErrorHandler } import khalyomede.mantis.html { h1, div, p } import khalyomede.mantis.http.response import khalyomede.mantis.http.route import khalyomede.mantis.logging { Log } import khalyomede.mantis.logging.channel { File } fn main() { app := create_app( log: { channel: File{ path: "logs/mantis.log" } } error_handler: ErrorHandler{ report: fn (app App, err IError) { app.log.log(.error, err.msg()) or {} // <----- } render: fn (app App, err IError) Response { return response.html( content: h1({}, ['Oops! Something went wrong']) status: .server_error ) } } routes: [ route.get(name: "index", path: "/", callback: fn (app App) Response { return response.html(content: div({}, ["Home page"])) }) ] ) app.serve() or { panic(err) } }
独立日志记录
日志记录可以在 HTTP 应用之外使用。阅读文档以了解更多信息。
更进一步
通过阅读文档了解有关日志记录的更多信息,包括动态严重性。
如果您发现任何问题或者想要贡献任何想法,请通过 Github 问题或 Twitter 告诉我。
祝您记录愉快!