pomelo日志管理

2024-05-09 07:18
文章标签 日志 管理 pomelo

本文主要是介绍pomelo日志管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

日志管理

pomelo 日志是通过 pomelo-logger 模块来管理的,pomelo-logger 是对 log4js 的简单封装,并提供了一些非常有用的 feature。

日志是通过 category 来进行管理与维护的,可以在log4js.json文件中进行配置

{"appenders": [{"type": "console"},{"type": "file","filename": "./logs/con-log-${opts:serverId}.log","pattern": "connector","maxLogSize": 1048576,"layout": {"type": "basic"},"backups": 5,"category": "con-log"},{"type": "file","filename": "./logs/rpc-log-${opts:serverId}.log","maxLogSize": 1048576,"layout": {"type": "basic"},"backups": 5,"category": "rpc-log"},{"type": "file","filename": "./logs/forward-log-${opts:serverId}.log","maxLogSize": 1048576,"layout": {"type": "basic"},"backups": 5,"category": "forward-log"},{"type": "file","filename": "./logs/rpc-debug-${opts:serverId}.log","maxLogSize": 1048576,"layout": {"type": "basic"},"backups": 5,"category": "rpc-debug"},{"type": "file","filename": "./logs/crash.log","maxLogSize": 1048576,"layout": {"type": "basic"},"backups": 5,"category":"crash-log"},{"type": "file","filename": "./logs/admin.log","maxLogSize": 1048576,"layout": {"type": "basic"},"backups": 5,"category":"admin-log"},{"type": "file","filename": "./logs/pomelo.log","maxLogSize": 1048576,"layout": {"type": "basic"},"backups": 5,"category":"pomelo"}],"levels": {"rpc-log" : "ERROR","forward-log": "ERROR"},"replaceConsole": true,"lineDebug": false
}

从配置文件中可以看出,每一项(除了console项)都配了category,pomelo-logger 通过 getLogger 的第一个参数指定 category 来把该logger输出的日志定向到该category配置的文件或者其它输出方案。
你可以添加自己的category,并在getLogger指定该category,你就可以把日志定向到该category所配的输出方案
注意:不建议使用不指定category的方式来进行配置,这样子所有的logger都会定向到该全局的输出方案

日志category

在pomelo中有些指定的category用于输出日志:

  • pomelo: 输出 pomelo 框架里的日志
  • admin-log: 输出 pomelo-admin 用于监控client登陆master时输出的日志
  • crash-log: 输出服务器crash异常时的日志信息
  • rpc-debug: 输出 rpc-debug 的日志,需要开启 rpc-debug 模式
  • forward-log : 输出从前端服务器转发到后端服务器的请求日志
  • rpc-log: 输出 rpc filter 上的日志
  • con-log: 输出 handler filter 上的日志

日志levels

可以通过指定日志的levels来控制输出的日志

"levels": {"rpc-log" : "ERROR","forward-log": "ERROR"
}

日志等级从左到右依次提升:

TRACE, DEBUG, INFO, WARN, ERROR, FATAL

在levels上等级配的越低,输出的日志范围则越大
相反,则输出的日志范围越小
比如:

var rpc_logger = require('pomelo-logger').getLogger('rpc-log', __filename);
rpc_logger.info("msg");

这里rpc_logger的输出日志等级是 INFO,而 levels 上配的是 ERROR
那么该日志就不会被输出到对应的appenders上面
你需要levels改成低于 INFO 的级别,比如 DEBUG 才会把 rpc_logger 的日志输出

日志配置项说明

  • type: 指定appenders的类型,可以是console, dataFile, file 等,具体详见 log4js
  • filename: 指定输出文件的路径
  • pattern:指定输出日志的pattern
  • maxLogSize:指定输出日志的最大大小
  • layout:指定输出的layout样式
  • backups:指定最大输出的文件数目
  • category:指定该appender对应的category,如果没有该项,说明该appender是一个全局的appender
  • replaceConsole:指定是否替换默认的console
  • lineDebug:指定是否开启debug显示日志行数

这篇关于pomelo日志管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972746

相关文章

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

SQL Server清除日志文件ERRORLOG和删除tempdb.mdf

《SQLServer清除日志文件ERRORLOG和删除tempdb.mdf》数据库再使用一段时间后,日志文件会增大,特别是在磁盘容量不足的情况下,更是需要缩减,以下为缩减方法:如果可以停止SQLSe... 目录缩减 ERRORLOG 文件(停止服务后)停止 SQL Server 服务:找到错误日志文件:删除

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排