blob: d0e70383ce60d712539fd2b3b8e391c919570a91 [file] [log] [blame]
// Copyright 2011 Google Inc. All Rights Reserved.
// Author: qianzhang@google.com (ken Zhang)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include "sagelog.h"
int sagelog_enabled = 1;
int console_enabled = 1;
int trace_level = 3;
char log_filename[128] = "/tmp/SageEncoder.log";
void _enable_native_log(void)
{
sagelog_enabled = 1;
}
void _disable_native_log(void)
{
sagelog_enabled = 0;
}
void _set_native_log(int level)
{
if (level == 0) {
sagelog_enabled = 0;
printf("sagelog is disabled.");
} else {
sagelog_enabled = 1;
trace_level = level;
printf("sagelog is enabled, \"%s\"\n", log_filename);
}
}
void _sagelog(int type, int level, const char *cstr, ...)
{
time_t ct;
struct tm ltm;
va_list args;
char szInfo[1024 * 3];
va_list va;
FILE *fp;
if (!sagelog_enabled)
return;
if (type == _LOG_TRACE && level > trace_level)
return;
fp = fopen(log_filename, "a");
if (fp == NULL)
return;
time(&ct);
localtime_r(&ct, &ltm);
va_start(va, cstr);
snprintf(szInfo, sizeof(szInfo) - 3, TEXT("%02d/%02d/%d %02d:%02d:%02d "),
ltm.tm_mon + 1, ltm.tm_mday, ltm.tm_year + 1900, ltm.tm_hour,
ltm.tm_min, ltm.tm_sec);
vsnprintf(szInfo + lstrlen(szInfo), (int)sizeof(szInfo) - lstrlen(szInfo) - 3,
cstr, va);
lstrcat(szInfo, TEXT("\r\n"));
fwrite((char *)szInfo, 1, lstrlen(szInfo), fp);
if (console_enabled)
printf("%s", szInfo);
va_end(args);
fclose(fp);
}
void _flog_setup(char *filename, int enable)
{
if (filename != NULL && filename[0])
strncpy(log_filename, filename, sizeof(log_filename));
sagelog_enabled = enable;
}
char *_get_flog_path(void)
{
return log_filename;
}
int _get_flog_state(void)
{
return sagelog_enabled;
}
int _flog_check(void)
{
FILE *fp = fopen("NATIVE_LOG.ENABLE", "r");
if (fp != NULL) {
sagelog_enabled = 1;
fclose(fp);
return 1;
}
return 0;
}