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日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c