node日志log4js库使用示例

news2025/1/21 22:03:15

    在node开发或者electron项目开发中,我们可能需要记录日志的功能,便于我们出错排查问题。今天介绍node中的日志库log4js。

    log日志记录,一般需要配置日志记录的级别,日志输出类型,日志格式等信息。log4js可以在初始化的时候设置这些属性。

    这里给出的示例,是一个在node项目中使用的配置,所以在依赖的地方,都是使用require导入。最后暴露方法的时候,使用module.exports导出,当项目是electron的时候,导入导出的地方变更一下就可以。

    1、安装依赖

npm install log4js --save

    2、配置log4js

    logger.js

const log4js =  require('log4js')
const path  = require('path')
const LOG_PATH = path.join('','logs')

log4js.configure({
    appenders:{
        logFile:{
            type:'dateFile',
            filename:path.join(LOG_PATH,"main"),
            pattern:'yyyy-MM-dd.log',
            keepFileExt: true,
            alwaysIncludePattern: true,
            layout:{
                type:'pattern',
                pattern:'%m%n'
            }
        },
        out:{
            type:'console'
        }
    },
    categories:{
        default:{
            appenders:['out'],
            level:'INFO'
        },
        main:{
            appenders:['out','logFile'],
            level:'DEBUG'
        }
    }
})

module.exports = {
    main : log4js.getLogger("main")
}

    日志配置,设置了两种日志输出方式,一个是文件输出,一个是控制台输出。 

    3、在其他地方调用

    logtest.js

const logger =  require("./logger")
logger.main.info("start...")
logger.main.error("sth is wrong...")

    这里直接运行这个测试程序,打印结果如下: 

    这是控制台打印的日志。

    log4js配置日志类别categories的时候,一定要配置default也就是默认日志类别,否则会报错。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/40621.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssh免密登陆

文章目录一、免密登陆1、生成密钥对2、将公钥拷贝到所创建的虚拟机上3、测试免密登陆成功没有二、遇到免密登陆失败的解决办法解决办法1、修改机器名,去掉.novalocal后缀2、重新做免密登录一、免密登陆 ssh密钥登录比密码登录安全,主要是因为他使用了非…

Spring - BeanPostProcessors 扩展接口

文章目录PreBean的生成过程org.springframework.beans.factory.config.BeanPostProcessor 介绍ApplicationContext注册Bean PostProcessor源码解析AbstractApplicationContext#refreshAbstractApplicationContext#registerBeanPostProcessorsPostProcessorRegistrationDelegate…

InnoDB底层存储结构探秘

一 innoDB 为什么不用平衡二叉树 计算机存储层次结构 计算机存储设备一般分为两种:内存储器(main memory)和外存储器(external memory)。 内存储器为内存,内存存取速度快,但容量小,价格昂贵,而且不能长期保存数据(在…

动物大全和动物识别系统毕业设计,动物大全和动物AI识别系统设计与实现,动物识别系统论文毕设作品参考

功能清单 【后台管理员功能】 系统设置:设置网站简介、关于我们、联系我们、加入我们、法律声明 广告管理:设置小程序首页轮播图广告和链接 留言列表:所有用户留言信息列表,支持删除 会员列表:查看所有注册会员信息&a…

第七届NVIDIA Sky Hackathon项目报告书

系列文章目录 数据集收集和标注情况 1.1ASR语音数据集收集和标注情况 1.2CV图像数据集收集和标注情况进行模型的训练 2.1进行ASR模型的训练 2.2进行CV模型的训练在Jetson平台进行部署和推理 3.1部署和推理ASR模型 3.2部署和推理CV模型优化UI界面 文章目录系列文章目录1. 数据集…

详解BFS,Dijkstra算法,Floyd算法是如何解决最短路径问题的

目录 1.BFS算法 2.Dijkstra算法 3.Floyd算法 4.总结 1.BFS算法 G纲是个物流离散中心,经常需要往各个城市运东西,怎么运送距离最近——单源最短路径问题 各个城市之间也学要来往,相互之间怎么走距离最近?——每对顶点之间的最…

GNS3学习笔记

文章目录GNS3学习笔记一、GNS3支持的设备列表有哪些1、在安装根目录下 XXX\GNS3\appliances2、The NAT node 怎么使用二、GNS3使用错误汇总1、iosVL2 image(qemu平台)启动后进不去系统,一直重复进入开机界面三、参考链接1、GNS3应该使用那个模拟平台2、怎么集成VM到…

〖全域运营实战白宝书 - 运营角色认知篇⑧〗- 运营人的发展路径

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…

Flink源码解析(一、source原理)

文章目录背景逻辑原理connector架构sql处理阶段代码实例代码debug参考文献背景 source/sink 是flink最核心的部分之一,通过对其实现原理的学习,结合源码debug,有助于加深对框架处理过程的理解,以及架构设计上的提升。 逻辑原理 …

详细介绍 Oracle中的Materialized Views(物化视图/快照)

A materialized view (snapshot) is a table segment whose contents are periodically refereshed based on query (against a local or remote table)(针对的本地或者远程表) The simplest way to achieve replication of data between sites for against remote tables: ma…

中断上下文和进程上下文

中断上下文 参考博客:(https://blog.csdn.net/AndroidBBC/article/details/81911065) 中断上半部分,中断触发;中断下半部分,中断执行。 中断执行一般有tasklet、工作队列实现 工作队列机制 工作队列所执行的中断代码会表现出进…

Linux | 第一篇——常见指令汇总【超全、超详细讲解】

Linux之常见指令🌳前言💻操作系统的概念💻Linux的使用环境介绍🌳基本指令汇总一、【whoami】指令二、【pwd】指令三、【mkdir】指令四、【touch】指令五、【ls】指令1、拓展:文件的概念2、命令 - 命令选项六、【cd】指…

AtCoder Beginner Contest 260 G.Scalene Triangle Area(花式二维差分/二维线段树)

题目 n*n的网格(n<2e3)&#xff0c; 每个网格内的字符是O或者X&#xff0c;其中O表示(i,j)上有一个棋子&#xff0c;X表示没有 位于(s,t)棋子覆盖住了方格(u,v)&#xff0c;当且仅当&#xff1a; 1. 2. 3. q(q<2e5)次询问&#xff0c;第i次给出一个方格位置(xi…

如何给在 SAP Business Application Studio 里开发的 OData 服务准备测试数据试读版

在开始本步骤的学习之前&#xff0c;请大家务必完成前一步骤1. SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务的学习。换言之&#xff0c;大家已经在 SAP Business Technology Platform 上的 Business Application Studio 里&#xff0c;创建…

Python实现基于Optuna超参数自动优化的xgboost回归模型(XGBRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 Optuna是一个开源的超参数优化(HPO)框架&#xff0c;用于自动执行超参数的搜索空间。 为了找到最佳的超…

docker 部署多个前端vue项目

文章目录一、docker 部署前端项目方案1. 方案12. 方案2二、Nginx配置运行2.1. 拉取nginx镜像2.2. 创建配置目录2.3. 创建Nginx容器三、部署前端项目3.1. 压缩3.2. 上传3.3. 验证附录index.html50x.htmlnginx.conf一、docker 部署前端项目方案 1. 方案1 一个docker容器对应一个…

java中“冷门”工具类的总结

文章目录前言一些不常用的工具类不可变集合多值MapTable表Lists、Maps、Sets字符串操作BagLazyList双向Map并发集合小总结CopyOnWriteArrayListConcurrentHashMap前言 最近挖掘了一些在项目中不常用的工具类&#xff0c;有些实用性还是很高的&#xff0c;特此总结一下。 另外又…

mysql中的这些日志,你都知道吗 2?

上一篇文章&#xff0c;我们介绍了binlog和redo log这两种日志&#xff0c;对这两种日志不熟悉的老铁可以看下"mysql中的这些日志&#xff0c;你都知道吗",在上篇文章的末尾&#xff0c;作者还留了一个问题&#xff1a;binlog 和 redo log两个相互独立的日志模块&…

kube-ovn安装与卸载

1.环境准备 Kube-OVN 是一个符合 CNI 规范的网络组件&#xff0c;其运行需要依赖 Kubernetes 环境及对应的内核网络模块。 以下是通过测试的操作系统和软件版本&#xff0c;环境配置和所需要开放的端口信息。1.1 软件版本 Kubernetes > 1.16 且 < 1.24&#xff0c;推荐…

RK3568平台开发系列讲解(音频篇)Android AudioRecord 采集音频

🚀返回专栏总目录 文章目录 一、Android 平台的音频采集技术选型1.1、SDK 层提供的采集方法1.2、NDK 层提供的采集方法二、AudioRecord 采集音频沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Android 平台音频采集的技术选型,在 SDK 层和 NDK 层各有两套音频采集…