简单的C 日志打印函数

由于未提供博客具体内容,无法给出包含关键信息的摘要。

```cpp
#include <unistd.h>
#include <sys/types.h>

#include "ntylog.h"

FILE *nty_err_log = NULL;
#define NCPP_LOG_FILE "/home/nty.log"
#define NTY_LOG_SIZE 1*1024*1024*1024


struct _log_nty nty_logs = {
	.level = NTY_LOG_DEBUG,
};

//设置日志打印级别
int set_ntp_log_level(unsigned l){
	if(l > NTY_LOG_DEBUG)
		return -1;
	nty_logs.level = l;
	return 0;
} 
 
 
 
int nty_log(FILE *f, uint32_t level, const char *format, ...)
{
	long pos_curr;
	//打印级别大于设置级别返回
	if (level > nty_logs.level)
	{
		return 0;
	}
	va_list ap;
	int ret, fd;
	//2 1G以上的文件操作时可能出错。
	pos_curr = ftell(f);
	if(pos_curr > NTY_LOG_SIZE){
		fd = fileno(f);
		ftruncate(fd, 0);
		rewind(f);
	}	
	va_start(ap, format);
	ret = vfprintf(f, format, ap);
	fflush(f);
	va_end(ap);
	return ret;
}
 
int main(int argc, char* argv[])
{
	char * sbrk="sssddwadada";
	int daya=12345;
	nty_err_log = fopen(NCPP_LOG_FILE, "w+");
	if(!nty_err_log)
	{
		printf("ERR: Failed to open ncp log file.\n");
		return 0;
	}
	
	set_ntp_log_level(NTY_LOG_MAX);
	
	NTY_LOG(nty_err_log,ERR,"unit[%s]\n",sbrk);
	NTY_LOG(nty_err_log,WARN,"udss[%d]\n",daya);	
	fclose( nty_err_log );
	return 0;
}

```cpp
#ifndef __NTY_LOG_INC__
#define __NTY_LOG_INC__
#include "stdio.h"
#include "stdarg.h"
#include "stdint.h"

enum nty_log_l{
	NTY_LOG_EMERG = 1,
	NTY_LOG_ERR,
	NTY_LOG_WARN,
	NTY_LOG_INFO,
	NTY_LOG_DEBUG,
	NTY_LOG_MAX,
};

struct _log_nty{
	enum nty_log_l level;
};

int set_ntp_log_level(unsigned l);

int nty_log(FILE *f, uint32_t level, const char *format, ...);

#define NTYDEBUGBUILD
#ifdef NTYDEBUGBUILD
#define NTY_LOG(f, l, ...)					\
	 nty_log(f, NTY_LOG_ ## l, # l " : " __VA_ARGS__)
#else
#  define NTY_LOG(...)                                                          \
    do {                                                                       \
    } while (0)
#endif


	

	
#endif	
基于SpringBoot的多模块支付管理系统是一个功能完善、易于二次开发的企业级支付解决方案。该系统在RuoYi项目基础上进行改造,通过模块化架构整合了支付系统常用的核心功能模块,为开发者提供了一个稳定、高效的开发平台。系统核心功能包括支付管理、对账清算、账户管理、支付订单管理等支付系统通用功能。目前已集成微信支付渠道,支持微信公众号商城应用,能够满足电商、金融、医疗等行业的支付需求。系统采用多模块设计,各功能模块独立开发、部署和维护,提高了系统的可扩展性和可维护性。技术架构方面,系统基于SpringBoot 2.0框架开发,采用MVC和分层架构模式,结合Apache Shiro实现用户角色权限管理,使用Thymeleaf作为模板引擎,MyBatis作为持久层框架。系统代码结构清晰,注释齐全,所有前端后台代码经过封装后精简易上手,出错概率低,特别适合作为毕业设计项目进行学习和二次开发。应用场景广泛,系统可以作为网站管理后台、网站会员中心、OA、ERP、CRM、CMS等Web应用程序的后台框架,支持医疗管理、金融系统等专业领域应用。同时支持移动客户端访问,可以做APP、微信公众号、微信小程序的后台,提供JSON接口并附带接口例子,后台还集成了接口测试模块,方便开发者进行接口调试和验证。作为毕业设计资源,该系统提供了完整的源码和论文文档,涵盖了系统设计、技术实现、功能测试等完整内容。系统界面简洁美观,操作流程清晰,文档注释齐全,专门为程序员二次开发设计。无论是计算机科学、软件工程专业的学生,还是需要支付系统解决方案的开发者,都可以从这个资源中获得实用价值。系统还会陆续更新一些实用功能,保持技术的先进性和实用性。该毕业设计资源不仅可以帮助学生完成高质量的毕业设计项目,还能为实际项目开发提供参考和基础框架,是学习和实践企业级支付系统开发的优秀素材。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值