首页 > 其他分享 >rust项目中通过log4rs将日志写入文件

rust项目中通过log4rs将日志写入文件

时间:2024-05-16 21:56:42浏览次数:26  
标签:文件 log log4rs file 日志 rust

java项目中使用最广泛的日志系统应该是log4j(2)了。如果你也是一个Java程序员,可能在写rust的时候会想怎么能顺手地平移日志编写习惯到rust中来。
log4rs就是干这个的。从名字就能看出来。

将Java编程习惯代人rust不是一种好的方向,毕竟两种语言定位不同。不过单纯练手就无所谓了

下载依赖

https://crates.io 看一下log4rs最新的版本,添加到toml文件。log4rs是依赖 log 这个crate的,所以这个依赖也要加上:

log4rs = "1.3.0"
log = "0.4.21"

编写配置

跟log4j类似,我们也需要编写日志配置文件。
在项目根目录下创建文件夹config,在里面创建文件log4rs.yaml:

appenders:
  stdout:
    kind: console
  file:
    kind: file
    path: "log/log.log"
    encoder:
      pattern: "{d} - {m}{n}"
root:
  level: info
  appenders:
    - stdout
    - file

惊呆了没有我的小伙伴,跟log4j太像了。
里面指明了日志文件的位置是log/log.log,所以一会你可以来查看这个文件。
同时除了file这个appender,这里还同时让它输出到了控制台stdout

使用

main函数中编写

    log4rs::init_file("config/log4rs.yaml", Default::default()).unwrap();
    info!("届时一个info {}", String::from("hello log"));
    warn!("又是一个warn {}", String::from("hello log2"));
    error!("又是一个err {}", String::from("hello log3"));

运行,看一下控制台或日志文件:
image

完工!

标签:文件,log,log4rs,file,日志,rust
From: https://www.cnblogs.com/somefuture/p/18196832

相关文章

  • 日志报错监控,nodejs实现服务器日志监控,发现指定错误,发送到微信群
    nohupnodelog2.js>log_output.log2>&1&constfs=require('fs');constrequest=require('request');constschedule=require('node-schedule');constmoment=require("moment-timezone");constl......
  • INFINI Labs 产品更新 | Console 1.24.0 操作日志审计功能发布
    INFINILabs产品又更新啦~,包括Console,Gateway1.24.0。本次各产品更新了很多亮点功能,如Console增加操作日志审计功能,优化数据探索字段统计,修复Gateway增加认证后添加实例失败等问题。以下是本次更新的详细说明。INFINIConsolev1.24.0INFINIConsole是一款非常轻量级的......
  • 位于 /var/log 目录下的日志文件
    “/var/log”是Linux系统登录文件放置的地方,里面就是记录点日志,可以删除,不过为了句柄安全,最好删除后重启xenserver(就是重启虚拟机)。以下是位于/var/log/目录下的不同的日志文件。其中一些日志文件是特定于发行版的。例如,您会在基于Debian的系统上看到dpkg.log(例如,在Ubun......
  • 阿里nginx error日志配置
    配置名称:nginx_sys_error_log_config 日志主题类型->文件路径提取->\/var\/log\/nginx\/(.*?)\/error.log文件路径:/var/log/nginx/    error.log  最大目录监控深度:2层日志样例:2024/01/2701:25:58[crit]221214#221214:*29786open()"/var/log/nginx/zhixiaoer......
  • 记录一下tomcat报错日志分析(去重分类)
    #!/usr/bin/envpython#coding=utf-8importosfolder_path='E:\\Desktop'output_file='E:\\Desktop\\bsvc_error.log'defmerge_files(folder_path,output_file):withopen(output_file,'w',encoding='utf-8&#......
  • Rust winit 0.30.0版本简介
    不久前,Rust著名的跨平台窗体管理库winit发布了它的0.30.0版本,较之前的0.2x.x版本,新增了19个的模块API,改动大约19个模块API,移除了大约8个模块API。可见本次升级改动之大,主要是对事件循环、窗口管理的重构。鉴于目前网上较多的文章都是基于0.2x版本的winit的代码,存在时效性问题,所以......
  • 如何优雅的使用aop记录带参数的复杂web接口日志
    1、新建一个自定义注解packagecom.ninestar.userFile.aop.annotation;importcom.ninestar.userFile.constant.Constants;importjava.lang.annotation.*;/***系统日志注解**@AuthorTring*@Date2024年5月7日14:31:18*/@Target(ElementType.METHOD)@Re......
  • 实现Python日志点击跳转到代码位置的方法
    前言在软件开发过程中,日志是一种非常重要的工具,用于记录程序运行时的状态、错误信息以及调试信息。当程序出现问题时,定位到具体的代码位置对于排查问题至关重要。本文将介绍如何在Python日志中实现点击跳转到代码位置的功能,以提高调试效率。为什么需要点击跳转功能?通常情况下,......
  • Rust数据驱动-参数化测试
    需求假如有以下测试用例,同样的逻辑,我们需要测试多组数据。modtests{#[test]fntest_add(){leta=1;letb=2;assert_eq!(a+b,3);}}一般情况下我们不在用例中使用for循环(即subtests子测试模式)来验证多组数据。modtest......
  • log4j 2异步日志
    要在Log4j2中启用异步日志收集,以防止日志打印操作阻塞应用线程。可以通过配置文件来实现这一功能。Log4j2本身就支持异步日志记录,下面是使用Log4j2配置文件(通常是log4j2.xml)来开启异步日志记录的一个示例:<?xmlversion="1.0"encoding="UTF-8"?><Configurationstatus="WA......