blob: 101d412f999b660d39905da329e992a0d3fb13c4 [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( )
{
sagelog_enabled=1;
}
void _disable_native_log( )
{
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( )
{
return log_filename;
}
int _get_flog_state( )
{
return sagelog_enabled;
}
int _flog_check()
{
FILE* fp = fopen( "NATIVE_LOG.ENABLE", "r" );
if ( fp != NULL )
{
sagelog_enabled = 1;
fclose( fp );
return 1;
}
return 0;
}