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

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性