如何为解析服务器记录器添加多个传输?
How to add multiple transport for parse-server logger?
我可以通过 let logger = require('parse-server').logger;
的解析服务器访问 winston logger exposer
我想配置多个传输文件以拥有具有不同日志记录级别的单独文件,就像我可以用 Winston 做的那样:
var logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
name: 'info-file',
filename: 'filelog-info.log',
level: 'info'
}),
new (winston.transports.File)({
name: 'silly-file',
filename: 'filelog-silly.log',
level: 'silly'
})
]
});
我试过 usgin winston 函数,例如:
logger.add(winston.transports.File, { ... });
还有:
winston.configure({
transports: [
new (winston.transports.File)({ filename: 'somefile.log' })
]
});
但是没用。
我也看到了这个 PR https://github.com/parse-community/parse-server/pull/2363 但我不明白如何从我的 index.js 添加这些传输到 parse-server
.
有人可以给我一些提示吗?谢谢!
附加信息:
解析服务器版本:2.6.2
我正在尝试做与您类似的事情。我想添加一个传输来将日志发送到 loggly。
我认为这样做的方法是使用 logger
对象,它与 parse-server
包中的 ParseServer 对象一起导出。
我添加 loggly 附加传输的方式如下:
const {ParseServer, logger} = require('parse-server');
const loggly = require('winston-loggly');
const parseApi = new ParseServer({
...
});
logger.adapter.addTransport(new loggly.Loggly({
subdomain: 'my-subdomain',
token: 'myToken',
json: true
}));
我相信这样做是安全的,因为记录器是由包以与 ParseServer 相同的方式导出的。
希望对您有所帮助。卢卡斯
为了将来参考(我如何使用 winston-mongoDB 的示例),我也将添加我的方式:
1) 创建自定义记录器适配器
var _WinstonLoggerAdapter = require('parse-server/lib/Adapters/Logger/WinstonLoggerAdapter');
import * as WinstonMongoDb from 'winston-mongodb';
export function createCustomLoggerAdapter(options) {
var winston = new _WinstonLoggerAdapter.WinstonLoggerAdapter(options);
var WinstonMongoDbInstance: any = WinstonMongoDb.MongoDB;
const transport = new WinstonMongoDbInstance({
...options,
collection: 'ServerLog',
level: 'error'
});
winston.addTransport(transport);
return winston;
}
2) 在解析配置中使用它
var parseConfig = {
....,
loggerAdapter: createCustomLoggerAdapter({db: databaseUri}),
}
我可以通过 let logger = require('parse-server').logger;
我想配置多个传输文件以拥有具有不同日志记录级别的单独文件,就像我可以用 Winston 做的那样:
var logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
name: 'info-file',
filename: 'filelog-info.log',
level: 'info'
}),
new (winston.transports.File)({
name: 'silly-file',
filename: 'filelog-silly.log',
level: 'silly'
})
]
});
我试过 usgin winston 函数,例如:
logger.add(winston.transports.File, { ... });
还有:
winston.configure({
transports: [
new (winston.transports.File)({ filename: 'somefile.log' })
]
});
但是没用。
我也看到了这个 PR https://github.com/parse-community/parse-server/pull/2363 但我不明白如何从我的 index.js 添加这些传输到 parse-server
.
有人可以给我一些提示吗?谢谢!
附加信息: 解析服务器版本:2.6.2
我正在尝试做与您类似的事情。我想添加一个传输来将日志发送到 loggly。
我认为这样做的方法是使用 logger
对象,它与 parse-server
包中的 ParseServer 对象一起导出。
我添加 loggly 附加传输的方式如下:
const {ParseServer, logger} = require('parse-server');
const loggly = require('winston-loggly');
const parseApi = new ParseServer({
...
});
logger.adapter.addTransport(new loggly.Loggly({
subdomain: 'my-subdomain',
token: 'myToken',
json: true
}));
我相信这样做是安全的,因为记录器是由包以与 ParseServer 相同的方式导出的。
希望对您有所帮助。卢卡斯
为了将来参考(我如何使用 winston-mongoDB 的示例),我也将添加我的方式:
1) 创建自定义记录器适配器
var _WinstonLoggerAdapter = require('parse-server/lib/Adapters/Logger/WinstonLoggerAdapter');
import * as WinstonMongoDb from 'winston-mongodb';
export function createCustomLoggerAdapter(options) {
var winston = new _WinstonLoggerAdapter.WinstonLoggerAdapter(options);
var WinstonMongoDbInstance: any = WinstonMongoDb.MongoDB;
const transport = new WinstonMongoDbInstance({
...options,
collection: 'ServerLog',
level: 'error'
});
winston.addTransport(transport);
return winston;
}
2) 在解析配置中使用它
var parseConfig = {
....,
loggerAdapter: createCustomLoggerAdapter({db: databaseUri}),
}