C语言简单日志记录系统-创新互联

在嵌入式系统软件开发过程中,经常会将系统信息以日志的形式记录在文件中,本文介绍一种简单的日志记录方法。

创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为福田企业提供专业的成都网站设计、成都网站建设,福田网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

1.日志头文件:

extern FILE *sys_log_file;


#define SYS_LOG_ERR(...) 			\
    do {					\
        if (sys_log_file != NULL) { 		\
            fprintf(sys_log_file, "sys: error " __VA_ARGS__); \
            fflush(sys_log_file); 	\
        } else 				\
        fprintf(stderr, "sys: error " __VA_ARGS__); \
    } while (0)

#define SYS_LOG_WARN(...) 			\
    do { 					\
        if (sys_log_file != NULL) { 		\
            fprintf(sys_log_file, "sys: warning " __VA_ARGS__); \
            fflush(sys_log_file); 	\
        } else 				\
        fprintf(stderr, "sys: warning " __VA_ARGS__); \
    } while (0)

#define SYS_LOG(...) 				\
    do { 					\
        if (sys_log_file != NULL) { 		\
            fprintf(sys_log_file, "sys: " __VA_ARGS__); \
            fflush(sys_log_file); 	\
        } 				\
    } while (0)

2.打开及调用

FILE *sys_log_file = NULL;


int main()
{
    sys_log_file = fopen("sys.log", "a");

    if (sys_log_file != NULL)
    {
        printf("file open OK!\n");
    }
    else
    {
        printf("file open failed!\n");
    }

    SYS_LOG_ERR("sys log error\n");

    SYS_LOG_WARN("sys log warning\n");

    SYS_LOG("sys log\n");

    fclose(sys_log_file);

    return 0;
}

3.总结:

1)该日志记录系统分为错误,警告,普通3种日志,采用宏的方式进行调用。对于错误,警告,若未指定文件,则会打印到标准输出设备上。

2)fprintf调用是线程安全的,原子操作的,多线程调用过程中不会出现乱码情况,但要注意其并不是进程安全的,在多进程调用过程中尤为注意。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:C语言简单日志记录系统-创新互联
文章链接:http://bzwzjz.com/article/ceopgi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 手机网站制作 企业手机网站建设 高端网站设计 网站建设推广 手机网站建设套餐 网站制作公司 成都网站设计 成都定制网站建设 网站建设开发 成都网站建设 高端网站设计 响应式网站设计方案 成都网站设计 成都网站建设 企业网站设计 网站设计 成都网站制作 网站制作 成都品牌网站建设 成都品牌网站设计 成都网站建设 定制网站建设