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 告诉我。
祝您记录愉快!