Code Monkey home page Code Monkey logo

simplelog's Introduction

simplelog

这是一个使用C语言编写的简单日志库,只需要在项目中引入dlplog.h头文件,然后就可以使用了。

功能

✅ 打印日志到日志文件
✅ 支持自定义日志存放目录
✅ 支持自定义子模块配置
✅ 支持日志输出格式化
✅ 支持日志输出关闭与开启
✅ 支持日志等级
✅ 支持日志文件按指定大小切分
✅ 支持日志文件按指定时间切分
✅ 支持日志文件覆盖
✅ 支持并发场景

测试

  1. 将本项目clone到本地;
  2. 确保本地环境已经安装gcc和make(当然make不是必须的,这里需要是为了使用项目中的Makefile);
  3. make run 命令是编译运行main.c主程序,执行完后可以在./log目录查看生成的日志;
  4. make clean-all 命令是删除生成的文件,包括日志文件等。
  5. 更多信息见 Makefile

使用

  1. 在自己的项目中引入头文件#include "dlplog.h",注意保证其路径正确;
  2. 在配置文件conf/logconf.json中进行配置(可以不进行配置,默认使用GLOBAL配置信息):
     {
         "submodule_name": "xxx",    // 子模块的名称
         "logging_enable": "on",     // 是否开启日志,on表示记录日志,off表示不记录日志
         "log_directory": "./log",   // 日志文件存放目录
         "log_min_messages": "INFO", // 只打印大于等于该等级的日志,日志等级从小到大分为:DEBUG INFO WARN ERROR
         "log_rotation_num": 4,      // 每隔多少文件进行覆盖,0表示不进行覆盖
         "log_rotation_day": 1,      // 每隔多少天进行日志文件切分, 0表示不按时间切分
         "log_rotation_size_mb": 50  // 每隔多少MB进行日志文件切分,0表示不按照日志文件切分
     }
  3. 如果子模块没有在配置文件中,则首先使用配置文件中的GLOBAL对应配置;如果配置文件中没有GLOBAL,则使用C代码中的默认配置信息:
     {
         "submodule_name": "GLOBAL",
         "logging_enable": "on",
         "log_directory": "./log",
         "log_min_messages": "INFO",
         "log_rotation_num": 0,
         "log_rotation_day": 1,
         "log_rotation_size_mb": 100
     }
  4. 在需要的地方进行日志接口调用,总共有下面四个日志接口,第1个参数是子模块名称,第2个参数是日志内容,支持日志输出格式化(样例见main.c):
     LOG_DEBUG("SAMPLING_NODE", "这是一条调试日志->%d", v1);
     LOG_INFO("ANALYSIS_NODE", "这是一条信息日志->%s", v2);
     LOG_WARNIGN("MANAGEMENT_NODE", "这是一条警告日志->%f", v3);
     LOG_ERROR("MANAGEMENT_NODE", "这是一条错误日志");
  5. 日志文件存放在对应日志目录,以子模块名称命名的日志文件是当前文件,以子模块名称+时间命名的日志文件是旧文件。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.