Log日志(Linux C)

2021/12/6 7:18:42

本文主要是介绍Log日志(Linux C),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

log日志

  在程序调试时log日志至关重要,笔者实现了一套linux log机制,主要功能如下

  • 日志等级区分:error,warn,info,debug 及对应显示开关(宏)
  • 终端色彩显示:不同等级log不同色彩打印
  • 支持简洁版和more msg多信息模式切换(宏):文件、函数、行号、开机时长(单位ms)
    ,系统时间(精确到ms)

linux彩色终端

  • 使用ANSI控制码可设置linux终端输出信息的色彩,除字体颜色还有高亮,背景,下划线,闪烁,光标位置,清屏等配置,可根据自己喜好查询对应控制码进行设置(这里只设置了颜色)。
#define ANSI_BLACK   "30m"      /* Black */
#define ANSI_RED     "31m"      /* Red */
#define ANSI_GREEN   "32m"      /* Green */
#define ANSI_YELLOW  "33m"      /* Yellow */
#define ANSI_BLUE    "34m"      /* Blue */
#define ANSI_MAGENTA "35m"      /* Magenta */
#define ANSI_CYAN    "36m"      /* Cyan */
#define ANSI_WHITE   "37m"      /* White */

#define ANSI_START      "\033["
#define ANSI_RESET      "\033[0m"

#define COLOR_INFO    ANSI_GREEN
#define COLOR_DEBUG   ANSI_BLUE
#define COLOR_WARN    ANSI_YELLOW
#define COLOR_ERROR   ANSI_RED

先看效果:

//demo:
void linux_log_demo(void)
{
    LOG_ERROR("This is %s : 0x%.4x ", "LOG_ERRTR",0x00FF);
    LOG_WARN("This is %s ","LOG_WARN!");
    LOG_INFO("This is %s ","LOG_INFO");
    LOG_DEBUG("This is %s ","LOG_DEBUG!");

    while(1)
    {
        LOG_INFO("This is %s ","LOG_INFO");
        LOG_DEBUG("This is %s ","LOG_DEBUG!");
        //usleep(100000);
        sleep(1);
    }
}
  • 简洁模式效果
    在这里插入图片描述

等级开关

/* level switch */ 
#define  LOG_ERROR_ENABLE    1
#if LOG_ERROR_ENABLE
#define  LOG_WARN_ENABLE     1
#if LOG_WARN_ENABLE
#define  LOG_INFO_ENABLE     0
#if LOG_INFO_ENABLE
#define  LOG_DEBUG_ENABLE    1
#endif
#endif
#endif
  • 等级由高到低分别是 error warn info debug,高级别关闭,比其低级别自动关闭。
    比如此配置关闭 info后只剩下比其高的error 和 warn 的log, 等级控制效果:
    在这里插入图片描述

更多信息模式

  • 可宏控制是否显示更多信息(文件、函数、行号、开机时长(ms))
  • 也可宏控制更多信息下是否打印日期(精确到ms)
#define LOG_MORE_MSG_ENABLE     1  /* more mesage .such as file,fun,line,time */ 
#define LOG_SHOW_DATE_ENABLE    0  /* date in more mesage */ 
  • more msg 效果
    在这里插入图片描述
  • more msg + date效果
    在这里插入图片描述

源码:github 地址

https://github.com/AntigravityC/linux_log
喜欢的点个星星吧(抱拳:)



这篇关于Log日志(Linux C)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程