nestjs - 当 Nest 从 Docker 容器启动时,NestJS 的 Logger.error() 不会输出任何内容
问题描述
我为我的 Nest 应用程序做了一个错误过滤器,它使用 logger.error() 输出我的错误对象。问题是 logger.error() 不起作用。我试图从多个位置调用 Logger,但没有任何效果。奇怪的是,其他选项(如详细和警告)工作得很好。
以这段代码为例:
import { Logger } from '@nestjs/common'
export class InstiController{
constructor(private instiService: InstiService) {}
private logger = new Logger('InstiController')
@Get()
foo(@GetLoggedUser() user: Usuarios) {
this.logger.error('This is an error')
this.logger.warn('This is a warning')
this.logger.verbose('This is a verbose')
return this.instiService.listUserInsti(user)
}
}
输出:
解决方案
默认的 docker GUI 日志记录级别是 info,因此不显示错误日志。
要覆盖日志记录级别,请转到
- 环境
- 码头引擎
- 添加
"logging": "fatal"
- 应用并重新启动
- 移除受影响的容器
- 通过 Dockerfile 或 docker-compose 重建它
错误日志应该能够显示。
PS docker GUI 中的日志记录级别是 ("debug"|"info"|"warn"|"error"|"fatal") (默认 "info")
设置日志级别后来自 Docker GUI 的图像: https ://i.imgur.com/ig6KW6T.png
方式02:
虽然command
在docker-compose.yml
.
然后,删除容器并使用 docker-compose up -d 重建它
...
services:
xxx:
build:
context: .
target: development
dockerfile: ./Dockerfile
command:
- "--log.level=FATAL"
....
推荐阅读
- amazon-web-services - 如何在 Amazon EC2 上配置自动代码备份
- php - gmail api php updatevacation
- java - Spring boot 2 从 Spring boot 1.5 迁移启动应用程序的问题 - java.lang.ArrayStoreException
- javascript - 画布不支持节点 js 中的符号
- javascript - req.path、req.params 和 req.query 有什么区别?
- python - 没有 __init__ 的类中的类变量赋值
- ios - IOS12 Flip TransitionWith:无法正常工作
- apache-camel - 骆驼 cxf 端点路由创建问题
- r - 面板数据中的周期性回归系数 r
- r - 如何在R中的同一个图上绘制所有数据集?