Mezmo (原日志DNA) Logger 适应器
笔记 - LogDNA决定暂时不将库名重命名为Mezmo. 为了避免有两个名字,我们决定 将变量、类等保留为LogDNA.
这是我们的BYB记录器模块,旨在支持多种两种记录方案.
- 一些 repos 可能严重依赖 Coper.log() 或类似于 Coper 上的输出日志 。 我们可以利用这个模块
环绕原始
console所以所有的日志也可以寄给Mezmo。 服务需要添加consoleLogger.init()在处理器. - 一个温斯顿日志 - 温斯顿创建了一个通用日志objec,允许我们在日志上进行各种操作,例如. 更改日志行的颜色,格式消息,可以自定义/添加自定义代码(使用传输机制)到 向 Mezmo 发送日志信息, 或者在数据库中存储 .
这个模块旨在一个本土节点运行时间和Lambda环境中工作. 兰巴达,请看 模糊所有信件 下节.
控制台 Logger 对 Winston Logger
- 别介意
console.log()不是推荐的用于前端应用的方法,但是在 后门。 有一些限制:- 当地人
console日志对象不支持LOG_LEVEL。例如,您可能不希望console.debug()改为 在生产服务器上显示调试信息. - 不支持日志颜色
- 不显示日期时间 这很难理解
- 不支持向外部服务发送日志
- 当地人
- 控制台 Logger 覆盖现有的
console目标作为采用logger对象.- 日志级别
- 发送到外部服务
- Winston Logger 解决上述所有限制
使用时 console.log 尚未准备好切换到温斯顿日志,此模块
也可以帮你.
版本数
- v1.x.x (第一版) (中文(简体) )
- 最初创建于2020年,但
logdna模块不再维护(https://www.npmjs.com/package/logdna (中文(简体) )) (中文(简体) ). 我们需要远离它.
- 最初创建于2020年,但
- v2.x.x (英语)
- 利用Mezmo团队积极维护的最新模块(https://www.npmjs.com/package/@logdna/logger)
- 修补一个缺失的对数线问题,因为
logdna-winston模块创建单独的日志 无法在Lambda终止前完全冲出消息。 我们决定 在此工程中自定义此模块, 并允许我们使用 LogDNA 日志对象的一例, 这样可以ensureFlushAll()可以在我们终止Lambda功能前冲出这些消息. 这个单一的日志DNA是共享和 被控制台日志包装和LogDNA传输都用作温斯顿日志系统的一部分. - 虽然这不是一个重大改变,但该模块的用户希望有一个可解释的升级版本。 只是更新到 最新 v2 版本; 消费者方面不需要 API 修改.
- 也动了
createLoggerObject()输入此共享模块, 这样在返回前更容易使用和前缀消息 实际日志对象。 譬如说.createLoggerObject([LOG-PREFIX] (英语)); 
- v2.0.3 起数
- 添加通用
MetricLogger
- 添加通用
1) 使用控制台锁定器
yarn add @beforeyoubid/logger-adapter
启动它
我们遵循12个要素,通过提供LOGDNA KEY作为环境的一部分,可以启用日志并发送到LogDNA 变量.
LOGDNA_KEY=xxxxxxyyyyyyyzzzzzzz
请注意,在当地,你可以设置 LOGDNA_KEY= 以禁用向 LogDNA 发送日志。 供应 LOG_LEVEL 作为组成部分
环境变量.
另外,你可以留着 LOGDNA_KEY 值与您为其它环境设置的相同, 但可以禁用发送日志
设置 LOGDNA_ENABLED=false 在您的嵌入变量中.
为非lambda环境
import { consoleLogger } from '@beforeyoubid/logger-adapter';
consoleLogger.init();
// Don't need to call consoleLogger.flushAll(), logdna object has default flush interval interval at 250ms
模糊所有信件
LogDNA将消息放入缓冲器,并每250ms推出. 如果Lambda在这些间隔之前被终止了,
可能有些消息日志没有发送到LogDNA. 使用 ensureFlushAll() 自动冲出信件.
Lambda: 对无服务器快车使用处理器包装
import { consoleLogger, ensureFlushAll } from '@beforeyoubid/logger-adapter';
consoleLogger.init();
export default ensureFlushAll(yourLambdaHandler);
Lambda: 用回调处理器
import { consoleLogger, ensureFlushAllCallback } from '@beforeyoubid/logger-adapter';
consoleLogger.init();
export default ensureFlushAllCallback(yourLambdaHandlerCallback);
2) 使用温斯顿·洛格
yarn add @beforeyoubid/logger-adapter
启动它
我们遵循12个要素,通过提供LOGDNA KEY作为环境的一部分,可以启用日志并发送到LogDNA 变量.
LOGDNA_KEY=xxxxxxyyyyyyyzzzzzzz
请注意,在当地,你可以设置 LOGDNA_KEY= 以禁用向 LogDNA 发送日志。 供应 LOG_LEVEL 作为组成部分
环境变量.
为非lambda环境
import { logger } from '@beforeyoubid/logger-adapter';
logger.debug('This message only show up when LOG_LEVEL is set to "debug"')
logger.info('This message only show up when LOG_LEVEL is set to "info"')
Lambda: 对无服务器快车使用处理器包装
import { logger, ensureFlushAll } from '@beforeyoubid/logger-adapter';
// you can use logger.debug('log text in a string format');
export default ensureFlushAll(yourLambdaHandler);
Lambda: 用回调处理器
import { logger, ensureFlushAllCallback } from '@beforeyoubid/logger-adapter';
// you can use logger.debug('log text in a string format');
export default ensureFlushAllCallback(yourLambdaHandlerCallback);
前置日志消息
在某些情况下,您可能想要有一个更清晰的日志消息,方法是用一个预先定义的字符串,例如您的名称
模块,所以它们看起来像这样. 
import { getLoggerObject } from '@beforeyoubid/logger-adapter';
const logger = getLoggerObject('[Your Custom Prefix]');
logger.info('the usual log string...')
注意到 3⁄4 ̄ ̧漯B.
import { logger } from '@beforeyoubid/logger-adapter';它只为您和您添加日志行前缀
返回时带有调试、信息、警告、出错等功能.
计量工具
动机 :
- Mezmo 是记录和调试的主要遥测工具之一
- 我们还可以使用Mezmo收集、处理和显示基于日志信息的商业衡量标准,而无需额外收费 现有计划
- 设定很简单,Mezmo从盒子里做这个
怎么会这样?
- 当一个JSON字符串(例如.
JSON.stringify(jsonObject))被送到了Mezmo,Mezmo足够聪明地将这个解为a json 对象和自动索引 - 通过这一过程,我们可以在物体中查找任何值,并(或)在任何具体的衡量标准上建立一个仪表板 合适的
- 唯一的缺点是,按照账户上的数据保留政策,数据保留通常限于30天
如何使用 :