如何解决NestJs 将 Morgan 和 Nest-Winston 的输出合并到一个文件中
我正在尝试使用 nest - winston 在一个文件中记录所有快速日志和未处理的异常。关注以下文章::
- https://www.npmjs.com/package/nest-winston
- https://www.section.io/engineering-education/logging-with-winston/
- Node.js - logging / Use morgan and winston
我研究了一下,发现应该使用morgan来记录express日志。
#include "std_lib_facilities.h"
int main()
{
cout << "Enter a series of double values,which represent the distance between two cities\n"
"(followed by '|' or a another non double/integer character):\n";
vector<double> distances; // city distances
for (double distance; cin >> distance; ) // read into distance
distances.push_back(distance); // put distance into vector
// compute total distance:
double sum {0.0};
for (double distance : distances)
sum += distance;
cout << "Total distance: " << sum << '\n';
// compute smallest and largest distance:
sort(distances); // sort distances
cout << "Smallest distance: " << distances[0] << '\n'
<< "Largest distance: " << distances[distances.size()-1] << '\n';
cout << "The mean distance between two cities is: " << sum/distances.size() << '\n';
keep_window_open();
return 0;
}
Winston 正确地将数据记录到文件中。
const winston = require("winston");
const morgan = require("morgan");
async function bootstrap() {
const appOptions = {
cors: true,logger: WinstonModule.createLogger({
transports: [
new winston.transports.Console({}),// ==> 1
new winston.transports.File({
filename:
"logs/Combined-" + new Date(Date.now()).toDateString() + ".log",level: "info",handleExceptions: true,}),new winston.transports.File({
filename:
"logs/Errors-" + new Date(Date.now()).toDateString() + ".log",level: "error",],format: winston.format.combine(
winston.format.timestamp({
format: "MMM-DD-YYYY HH:mm:ss",winston.format.printf(
(error) => `${error.level}: ${[error.timestamp]}: ${error.message}`
)
),};
const app = await NestFactory.create(ApplicationModule,appOptions);
app.setGlobalPrefix("api");
app.use(morgan("combined",{ stream: winston.stream.write })); // ==> 2
const options = new DocumentBuilder()
.setTitle("xx")
.setDescription("xx")
.setVersion("1.0")
.setBasePath("api")
.addBearerAuth()
.build();
const document = SwaggerModule.createDocument(app,options);
SwaggerModule.setup("/docs",app,document);
await app.listen(3000);
}
bootstrap();
现在我想记录我插入摩根的所有快速日志,如代码所示(第 2 点)。它记录到控制台,但不记录到文件。 但是如果我注释掉第 1 点,即登录到控制台。项目没有启动。它在低于 2 行后卡住。我等了 15 分钟,但没有进展。
error: Jul-08-2021 18:12:34: Input data validation failed
error: Jul-08-2021 18:26:28: Input data validation failed
error: Jul-08-2021 18:27:09: Input data validation failed
error: Jul-08-2021 20:57:52: Input data validation failed
info: Jul-08-2021 21:47:40: Mapped {/api/pricing/:id,GET} route
info: Jul-08-2021 21:47:40: Mapped {/api/route/:slug,DELETE} route
info: Jul-08-2021 21:47:40: Nest application successfully started
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。