Sniffnet日志级别设置:调试与生产环境配置

【免费下载链接】sniffnet Sniffnet 是一个能让你轻松监测网络流量的应用。你可以选择网络适配器,设置过滤器,查看统计数据、实时图表,还能导出报告,识别各种服务协议,找到主机域名等,零基础也能上手用。源项目地址: https://github.com/GyulyVGC/sniffnet 【免费下载链接】sniffnet 项目地址: https://gitcode.com/GitHub_Trending/sn/sniffnet

日志级别概述

Sniffnet使用Rust标准日志体系,支持debuginfowarnerror四个级别,通过编译时配置区分环境。调试模式下默认启用详细日志,生产环境仅保留关键错误信息,核心实现见src/utils/error_logger.rs

调试环境配置

自动调试模式

当使用cargo build默认编译时,Rust自动启用debug_assertions特性,触发以下行为:

  • 错误日志自动panic(便于捕获开发阶段异常)
  • 完整文件路径与行号输出
  • 协议解析详细过程记录

关键实现代码:

// src/utils/error_logger.rs 第17行
assert!(!cfg!(debug_assertions)); // 调试模式下错误触发panic

手动调整日志

修改Cargo.toml添加日志过滤器:

[profile.dev]
rustflags = ["--cfg", 'log_level="debug"']

生产环境配置

发布模式编译

使用cargo build --release自动切换至生产配置:

  • 仅保留warnerror级别日志
  • 禁用源码位置追踪
  • 错误信息简化显示

测试验证代码:

// src/utils/error_logger.rs 第55-59行
#[test]
#[cfg(not(debug_assertions))]
fn test_error_logger_no_panic_on_err_in_release_mode() {
    let err_result: Result<usize, &str> = Err("test_error");
    let err_handled = err_result.log_err(location!());
    assert_eq!(err_handled, err_result);
}

日志输出控制

生产环境日志通过src/networking/manage_packets.rs中的流量处理模块定向输出,默认记录:

  • 适配器连接错误
  • 数据包解析失败
  • 权限不足异常

日志级别最佳实践

环境 推荐级别 典型应用场景
开发调试 debug 协议解析调试、UI组件渲染
测试验证 info 功能流程验证、性能基准测试
生产部署 error 服务中断、数据丢失风险

配置验证方法

  1. 调试模式验证:
cargo run --features debug_logs
  1. 生产模式验证:
cargo build --release
./target/release/sniffnet 2> error.log

查看生成的error.log确认日志级别是否符合预期。

扩展阅读

【免费下载链接】sniffnet Sniffnet 是一个能让你轻松监测网络流量的应用。你可以选择网络适配器,设置过滤器,查看统计数据、实时图表,还能导出报告,识别各种服务协议,找到主机域名等,零基础也能上手用。源项目地址: https://github.com/GyulyVGC/sniffnet 【免费下载链接】sniffnet 项目地址: https://gitcode.com/GitHub_Trending/sn/sniffnet

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐