简介
Deno 是一种新兴的 JavaScript 和 TypeScript 运行时环境,目前越来越受到前端界和后端界的青睐。而在应用开发过程中,日志记录是不可或缺的一环。因此,本文将介绍如何使用 logger 在 Deno 的应用中进行日志记录。
何为 logger
logger 是一个常用的日志记录库,它能够记录应用中发生的信息、警告和错误等。logger 不仅将日志输出到终端,也可以输出到文件或者其他记录介质。同时,logger 还可以根据不同的日志等级过滤日志的输出。
安装 logger
在 Deno 应用中使用 logger,需要先进行它的安装。可通过如下命令进行安装:
deno install --allow-net --allow-read --allow-write --unstable https://deno.land/x/std@0.95.0/log/mod.ts
使用 logger
引入 logger 后,可以使用不同的可用等级进行不同类型的日志记录。logger 支持以下日志等级:
DEBUG
: 记录详细信息,通常仅在诊断问题时使用。INFO
: 可以用来记录重要的事情,如应用程序启动时、配置发生变化等。WARNING
: 记录应用程序中的警告信息,例如:可能会影响应用程序行为的中性错误、违规行为等。ERROR
: 记录应用程序错误信息,例如:请求失败、操作失败等。
下面是一个简单的例子,展示了一个基本的应用程序如何在 Deno 中使用 logger 进行日志记录:
-- -------------------- ---- ------- ------ - ------ - ---- ------------------------------------- ------------------- -- ----------- -- -------- -- ----- --- - ---------------------------- - ----- ------- - ---------------------------- - ------------------------- -- --- ----- --------- ------------------ -- - ----- -----------
执行程序后,你应该会看到 logger 所记录的信息:
# 输出到终端 INFO Server is started. ERROR Unexpected token f in JSON at position 1 WARNING Something is not quite right. DEBUG This is a debug message.
与 console.log 不同,logger 会在日志记录中输出额外的信息,如: 日志等级、记录时间、代码调用位置等。同时,上面的例子也演示了如何处理错误,并将错误信息记录到日志文件当中。
logger 还支持设置日志级别的过滤。可以通过以下代码将日志级别设置为 INFO:
logger.setLevel(logger.INFO);
其他可用的日志级别还包括 logger.DEBUG、logger.WARNING 和 logger.ERROR。
日志输出
logger 可以将日志记录输出到不同的介质中。默认情况下,logger 只会将日志输出到终端中,通过调用 logger 的 setHandler 方法可以改变日志输出的目标介质。例如,将日志输出到文件中:
-- -------------------- ---- ------- ------ - ------ - ---- ------------------------------------- ------ - --------- - ---- ---------------------------------------- ----- -------------- --------- - ----- --- ---------------------- - ---------- -------- --- -- -------- - -------- - ------ ------- --------- --------- -- -- --- ----------------- ------- -- -------- -- --- --------
在这个例子中,我们将日志输出到了名为 log.txt 的文件中。需要注意的是,不同的介质可能需要不同的配置参数,以适应不同的记录需求。
结论
logger 是一个优秀的日志记录库,它可以方便地记录应用程序中的各个网络活动和错误信息,并输出到多种介质中。在 Deno 的应用中,logger 更可以帮助我们实现更加完善的日志记录和管理。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670c0e7666ef9cf37fadf97b