```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;
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