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

相关文章

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python