首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏twowinter

    Golang - 日志 logrus

    2 为什么是它 golang 日志 golang 标准日志框架非常简单,仅仅提供了print, panic 和 fatal三个函数。 对于更精细的日志级别、日志文件分割以及日志分发等方面并没有提供支持. 所以催生了很多第三方的日志,但是在golang的世界里,没有一个日志像slf4j那样在Java中具有绝对统治地位.golang中,流行的日志框架包括logrus、zap、zerolog、seelog 等. logrus 是目前 Github 上 star 数量最多的日志,目前(2018.12,下同)star数量为8119,fork数为1031. logrus功能强大,性能高效,而且具有高度灵活性, 完全兼容golang标准日志模块:logrus拥有六种日志级别:debug、info、warn、error、fatal和panic,这是golang标准日志模块的API的超集.如果您的项目使用标准日志模块

    3.9K10发布于 2020-04-17
  • 来自专栏自动化、性能测试

    Python常用 - logging日志

    (50) special 在自定义日志级别时注意不要和默认的日志级别数值相同 logging 执行时输出大于等于设置的日志级别的日志信息,如设置日志级别是 INFO,则 INFO、WARNING、ERROR logging常见对象 Logger:日志,暴露函数给应用程序,基于日志记录器和过滤器级别决定哪些日志有效。 LogRecord :日志记录器,将日志传到相应的处理器处理。 Handler :处理器, 将(日志记录器产生的)日志记录发送至合适的目的地。 Filter :过滤器, 提供了更好的粒度控制,它可以决定输出哪些日志记录。 参数名称 参数描述 filename 日志输出到文件的文件名 filemode 文件模式,r[+]、w[+]、a[+] format 日志输出的格式 datefat 日志附带日期时间的格式 style %(pathname)s 包含路径的文件名 %(funcName)s 日志记录所在的函数名 %(levelname)s 日志的级别名称 %(message)s 具体的日志信息 %(lineno)d 日志记录所在的行号

    1K10发布于 2020-06-09
  • 来自专栏字节脉搏实验室

    Go日志开发

    这次将自己实现go语言中的日志的思路在这里班门弄斧一下 ? 日志 日志能方便地诊断程序原因、统计程序运行数据,是大型软件系统必不可少的组件之一。 日志输出方式 控制台输出 文件写入(支持文件切割) 日志输出级别 debug、trace、info、warning、error、fartal ? ? 首先就是日志结构 ? ? console:打印到控制台 file:写入到文件 mylogger:日志公用函数 console.go ? ? 接下来的几个函数就是将对应的日志内容打印到控制台,这个传递的msg就是日志内容 然后a变量就是用户的格式化输出参数。 ? ? 由于每个日志级别都是打印到控制台,所以这里就不需要重复造轮子了 ? ? 在log中会日志文件的大小进行检查,判断日志文件的大小是否小于用户指定的文件大小,如果大于,就对文件进行切割 ? ?

    87510发布于 2021-01-19
  • 来自专栏后端码匠

    【NDK】封装日志

    【NDK】封装日志 0x1需求 供C++、Java调用 控制台输出 文件输出(文件大小) 设置日志等级 0x2 C++ 0x21 LogUtils.h // // Created by 后端码匠 LOG_LEVEL_INFO = 3, LOG_LEVEL_DEBUG = 4 }; #ifdef __cplusplus extern "C" { #endif /** * 初始化日志选项 return */ int LogInit(const char *pFile, const char *filename, int logLevel, int printScreen); /** * 日志处理 strFormat * @param ... */ void WriteTextLog(int level, const char *strFormat, ...); /** * 向文件中写入日志 * @param level * @param log */ void WriteTextLogBottom(int level, const char *log); /** * 关闭日志

    84720编辑于 2023-02-27
  • Zap日志指南

    Zap是由Uber开发的高性能Go日志,特别适合后端服务。 入门: 第一目:为什么要选择Zap? 在Go语言的日志中,流行的有 zap、logrus...甚至还有Go自带的原生的log。 zap:极致性能(低延迟、低内存占用)、支持多种日志级别、偏底层、Uber官方维护并持续更新 Logrus:灵活易用、支持多种日志级别、高层封装支持全局调用、基本停滞更新 原生log包:简单易用的基础工具 zap.String("service", "user-api"), zap.Time("start_time", time.Now()), ) // 打印 logger.Warn("数据连接缓慢 service":"user-api","start_time":"2023-07-22T10:00:00Z"} {"level":"warn","ts":1690000001.2345678,"msg":"数据连接缓慢 格式化字符串与结构字段,语法更接近传统日志,缺点就是性能略低。

    27510编辑于 2025-10-22
  • 来自专栏码客

    Go中日志

    在文件输出日志 Gin框架的请求日志默认在控制台输出,但更多的时候,尤其上线运行时,我们希望将用户的请求日志保存到日志文件中,以便更好的分析与备份。 (比如数据)。 main.go:42 Hello World {“name”: “psvmc”} log/slog 需要go1.21版本及以上 log/slog是Go 1.21中引入的一个新的结构化日志 ,它与标准的log包兼容,但提供了更多的功能和灵活性。 该默认Logger将日志信息写入标准错误,并在每条日志信息前添加日期和时间。 log/slog的日志记录由以下几个部分组成: 时间:日志记录发生的时间,可以是本地时间或UTC时间。

    41310编辑于 2024-03-29
  • 来自专栏python12

    Python日志logging总结

    1、日志级别 Python 标准 logging 用作记录日志,默认分为六种日志级别(括号为级别对应的数值),NOTSET(0)、DEBUG(10)、INFO(20)、WARNING(30)、ERROR 类型说明: Logger:日志,暴露函数给应用程序,基于日志记录器和过滤器级别决定哪些日志有效。 LogRecord :日志记录器,将日志传到相应的处理器处理。 root: level: DEBUG handlers: [console] 复制代码 testyaml.py 文件 import logging.config # 需要安装 pyymal logging.handlers.TimedRotatingFileHandler("test.log", when="H", interval=1, backupCount=10) 复制代码 Python 官网虽然说 logging 是线程安全的 总结:Python logging 设计的真的非常灵活,如果有特殊的需要还可以在这个基础的 logging 上进行改进,创建新的 Handler 类解决实际开发中的问题。

    41420编辑于 2022-01-10
  • 来自专栏晓晨的专栏

    Go 使用 zap 日志

    1.前言 zap 是我个人比较喜欢的日志,是 uber 开源的,有较好的性能。很多开源 Go 项目都使用它作为日志组件。 , enc zapcore.PrimitiveArrayEncoder) { enc.AppendString(t.Format("2006-01-02 15:04:05.000")) } 自定义日志级别显示 // 采用本地时间 Compress: false, // 是否压缩日志 // 是否压缩日志 zapLogger = zap.New(zapCore, zap.AddCaller(), zap.AddCallerSkip(1)) 记得在程序退出时调用 zapLogger.Sync(),不然会造成丢失日志

    1.2K10编辑于 2022-10-04
  • 来自专栏me的随笔

    Python日志和配置

    ", settings_files=_cfg_files ) 这样我们就可以把不同环境下的配置项写入到不同的配置文件中了 ---- loguru loguru是一个易于配置和使用的Python日志 安装: pip install loguru 默认输出日志到控制台: from loguru import logger logger.info("一条日志信息") 日志输出结果如下: 2023-06 -07 21:06:04.154 | INFO | __main__:<module>:3 - 一条日志信息 loguru输出的日志带有颜色,不仅美观,还易于阅读,如下图所示 结构化日志 除了简单输出日志外 : 滚动日志 在生产环境,日志通常会记录到文本中而非仅仅打印到控制台。 来记录日志,需要对日志模块进行替换。

    76630编辑于 2023-07-09
  • 来自专栏CPP开发前沿

    spdlog日志的使用

    1 spdlog初识 今天介绍一个开源日志,只需要将include下面的文件拷贝到自己的代码目录下,就可以在项目中使用。使用效果如下图所示: 值得注意的是,使用时编译器需要支持C++11。 总体来说具有以下特点: 1、性能快 2、使用简单,只需要包含头文件即可 3、丰富的格式化处理,采用开源fmt,地址:https://github.com/fmtlib/fmt 4、异步模式,支持异步写文件 5、自定义日志输出格式 6、支持多线程日志输出 7、对日志进行设置,如:日志大小、生成日志频率、系统日志日志颜色设置 8、日志输出级别即时生效 9、各种日志目标:可对日志文件进行循环输出;可每日生成日志文件 调试日志可以暂时保存在内存中,需要的时候可以通过接口对缓存的日志进行输出,通过参数可以设置日志缓存和输出的日志记录数。 new logger log message"); } 3 总结 目前,spdlog的版本为v1.x,可以通过下面链接获取: https://github.com/gabime/spdlog spdlog支持已经系统

    3.5K10编辑于 2021-12-16
  • 来自专栏全栈程序员必看

    -日志记录SPDLog简介

    文章目录 spdlog 日志记录槽sink 日志记录器logger 输出格式pattern 对齐方式 截断 字符串格式化fmt Format Specification spdlog使用 异常处理 logger 基础用法 stdout日志 文件日志 基本文件 循环文件 每日文件 示例 spdlog是一款开源的、快速的日志。 spdlog spdlog是基于C++11实现的一款纯头文件的日志管理(git地址:https://github.com/gabime/spdlog,API说明:https://spdlog.docsforge.com /v1.x/1.quickstart/): 配置特别简单,仅包含头文件即可; 写日志方式简单明了; 可实现自动按日期创建日志文件/定时创建日志文件; 可自定义日志格式; 可以输出当前输出日志所在的文件及函数 l “i” 字符串格式化fmt spdlog中字符串格式化使用fmt(https://github.com/fmtlib/fmt)

    9.7K61编辑于 2022-09-10
  • 来自专栏自动化、性能测试

    Python - loguru日志,高效输出控制台日志日志记录

    loguru保留日志文件 一般情况,我们都需要将日志输出保存到文件中,loguru直接通过 add() 方法,就可以配置一个日志文件,如下代码所示: # coding:utf-8 from loguru 包含知识点 第一个参数是保存日志信息的文件路径,像我写的后缀多了个 ,就是获取当前时间节点,这样就会自动创建新的日志;这个time应该是库里自带的变量,如果你想自己定义time也可以的哦,具体可以看看下面封装类的实现形式 {time} 当你需要输出中文日志的时候,请加上 ,避免出现乱码 encoding="utf-8" 代表异步写入,官方的大概意思是:在多进程同时往日志文件写日志的时候使用队列达到异步功效 enqueue =True 可以理解成日志的创建时机,可以有多种写法 :当日志文件达到500MB时就会重新生成一个文件 rotation="500 MB" :每天12点就会创建新的文件、 rotation="12 日志输出路径:你的项目路径下的log文件夹下 注意:这个是工具类,需要放在项目路径下的util文件夹之类的,不能直接放项目路径下哈,不然路径会生成错误哦 """ 操作日志记录 """ import time

    5.9K10发布于 2020-06-09
  • 来自专栏全栈程序员必看

    spdlog 日志学习,简易封装

    (strrchr(__FILE__, '/') + 1):__FILE__) #endif //定义一个在日志后添加 文件名 函数名 行号 的宏定义 #ifndef suffix #define suffix BaseLog* getInstance() { static BaseLog instance; return &instance; } //初始化日志 ,路径使用locale编码 //如: QString("日志.log").toLocal8Bit().toStdString() void init(const std::string& %e] 时间 //[%l] 日志级别 //[%t] 线程 //[%s] 文件 //[%#] 行号 //[%!] :%#] %v"); //设置当出发 err 或更严重的错误时立刻刷新日志到 disk logPtr->flush_on(spdlog::level::trace);

    1.7K30编辑于 2022-09-10
  • 来自专栏FunTester

    Zap高性能日志实践

    Zap 是一个由 Uber 公司开源的结构化、高性能日志记录,旨在为 Go 语言提供一种快速、简单且高效的日志解决方案。 Zap 的主要特点如下: 高性能:Zap 在设计时就非常注重性能,比标准 log 包快几个数量级,即使在高并发场景下也能保持出色的性能表现。 通过 Zap,开发者可以获得高效、灵活且易于管理的日志解决方案,从而更好地监控和调试应用程序。 下面我们来进行zap日志的上手实践。 go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect 小试牛刀 下面我们先来一个基础的Case来熟悉一下zap日志的的使用语法 sugar 在 zap 日志中,除了提供高性能、结构化的日志记录功能外,还提供了一个简化的日志记录接口,称为 “Sugared Logger”。

    77210编辑于 2024-06-18
  • 来自专栏Golang语言社区

    Golang语言--日志glog解析

    glog简介 glog是著名的google开源C++日志glog的golang版本,glog是一个轻量级的日志,上手简单不需要配置文件并且稳定高效,但是可以自定义控制的内容就少了。 vlog简介 一般的日志会提供日志输出级别,当日志信息的级别低于输出级别时则不会输出该日志信息。 我们使用其他日志时会使用log.Debug()打印出调试信息,在测试环境下将日志的输出级别设置为DEBUG,调试信息就会输出便于我们查看程序的具体运行情况,而在线上程序中将日志的输出级别设置为INFO 修改glog源码 glog有些功能与我们常用的日志不太一样或者没有我们期望的功能,可以修改glog的源码来实现我们的需求。 比如我们之前使用的日志是有DEBUG INFO ERROR FATAL级别的,我们可以修改glog源码增加DEBUG级别,删除WARN级别,已于我们的原有系统保持一致。

    2.2K60发布于 2018-03-21
  • 来自专栏狗哥的 Java 世界

    详解 Java 主流日志工具

    在 Java 世界,有很多的日志工具来实现日志功能,避免了我们重复造轮子。先来逐一了解一下主流日志工具。 但是,slf4j 在编译时静态绑定真正的 Log 。使用 SLF4J 时,如果你需要使用某一种日志实现,那么你必须选择正确的 SLF4J 的 jar 包的集合(各种桥接包)。 common-logging vs slf4j slf4j 类似于 Apache Common-Logging。但是,他在编译时静态绑定真正的日志。 实施日志解决方案 使用日志解决方案基本可分为三步: 引入 jar 包 配置 使用 API 常见的各种日志解决方案的第 2 步和第 3 步基本一样,实施上的差别主要在第 1 步,也就是使用不同的。 强烈建议不要直接使用日志实现组件(logback、log4j、java.util.logging),理由前面也说过,就是无法灵活替换日志

    1.2K00发布于 2019-11-13
  • 来自专栏devops_k8s

    Zap日志并集成Gin

    日志切割-能够根据文件大小、时间或间隔等来切割日志文件; 3 . 支持不同的日志级别。例如INFO,DEBUG,ERROR等; 4 . c.AbortWithStatus(http.StatusInternalServerError) } }() c.Next() } } 我们可以模仿Logger()和Recovery()的实现,使用我们的日志来接收 ; _ Zap本身不支持切割归档日志文件 _ 为了添加日志切割归档功能,我们将使用第三方Lumberjack来实现; 使用Lumberjack进行日志切割归档 2021-04-14T18:50:35.252 ——也比标准更快。 以下是Zap发布的基准测试信息 它同时提供了结构化日志记录和printf风格的日志记录 它非常的快 为什么选择Uber-go zap Zap是非常快的、结构化的,分日志级别的Go日志; ** Uber-go

    3.9K80发布于 2021-04-23
  • 来自专栏人人都是架构师

    Loguru:简洁易用的日志

    Loguru 介绍 在编程世界里,日志记录是一项基础而重要的任务,它帮助我们理解软件的运行状态,监控问题,并进行故障排查。 今天,我要介绍的是一个名为 Loguru 的 Python ,它以简洁和易用性著称,让日志记录变得轻松愉快。 现在是 GitHub 上最流行的 Python 第三方日志框架 ,约 13k 个 Star https://github.com/Delgan/loguru Loguru 是一个第三方日志记录, 更多内容,见免费知识星球 01 — 快速开始 要开始使用 Loguru,首先需要安装这个日志级别 日志级别是日志记录中广泛使用的概念,它们指定日志记录的严重性,以便可以根据消息的紧急程度对消息进行过滤或确定优先级, Loguru 提供七个独特的日志级别 # app.py . . .

    50210编辑于 2025-01-18
  • 来自专栏空帆船w

    Android 专用的日志封装

    所以在程序开发或者上线后如果出现了 Bug,能够及时查看日志,对修复 Bug 非常有帮助。 目前最为流行的本地日志框架应该是 orhanobut 的 Logger ,功能很强大而且打印出来的日志非常好看。 网络日志这块应该是 square 的 okhttp-logging-interceptor 。 于是我便对这两种框架进行了封装,作为日常日志工具。这里推荐给大家使用。 支持以下功能 Logcat 后台打印好看整洁的日志。 应用崩溃日志和 error 级别日志自动保存至本地文件。 Logcat 后台打印 Http 日志,屏蔽了文件流打印乱码。 应用崩溃日志和 error 级别日志会自动保存至内部存储路径 Android/data/packageName/log/ 路径下。

    1.2K20发布于 2018-10-15
  • 来自专栏Golang语言社区

    Golang语言--glog日志使用

    go语言有一个标准,log,提供了最基本的日志功能,但是没有什么高级的功能,如果需要高级的特性,可以选择glog或log4go。 glog是google提供的,类似于google的c++ log,使用起来非常简单,下面介绍一下;log4go的用法和log4j一样,可配置性比较高。 glog只提供了少数几个选项,通过命令行控制,例如: -log_dir: 日志文件保存目录 -alsologtostderr: 日志写入文件的同时,输出到stderr -v:配置V输出的等级。 有几点说明: 1、高等级的日志会同时输出到比它等级低的文件中,例如error日志会同时输出到error文件,warning文件,info文件中,依次类推; 2、启动时,调用flag.Parse用来初始化 5、运行示例,假设文件名为f.go go build f.go f.exe -log_dir="./" -v=3 f.exe -log_dir="./" -v=2 6、日志文件名 日志文件名由以下几部分组成

    9K90发布于 2018-03-21
领券