void app_log_file(char *fmt, ...) { va_list args; VMINT drv, hdl; VMUINT written; VMINT ret; vm_time_t time = {0}; char buf[LOG_BUF_SIZE] = {0}; VMWCHAR wpath[FILE_PATH_SIZE] = {0}; VMCHAR path[FILE_PATH_SIZE] = {0}; buf[LOG_BUF_SIZE - 2] = '\r'; buf[LOG_BUF_SIZE - 1] = '\n'; va_start( args, fmt ); vm_get_time(&time); vm_sprintf(buf+strlen(buf), "[%02d:%02d:%02d]", time.hour, time.min, time.sec); vm_vsprintf(buf+strlen(buf), fmt, args); drv = vm_get_removable_driver() > 0 ? vm_get_removeable_driver() : vm_get_system_driver(); vm_sprintf(path, "%c:\\%s", drv, BT_NAME".log"); vm_gb2312_to_ucs2(wpath, sizeof(wpath), path); hdl = vm_file_open(wpath, MODE_APPEND, 0); if (hdl < 0) hdl = vm_file_open(wpath, MODE_CREATE_ALWAYS_WRITE, 0); else { if (!flag_delete_log) { vm_file_close(hdl); vm_file_delete(wpath); flag_delete_log = 1; hdl = vm_file_open(wpath, MODE_CREATE_ALWAYS_WRITE, 0); } } vm_file_write(hdl, buf, LOG_BUF_SIZE, &written); vm_file_close(hdl); va_end( args ); }
void log_it(VMINT level, char* fmt, va_list ap) { vm_time_t tm; VM_P_HANDLE phandle; char text[MAX_APP_NAME_LEN], level_text[10] = {0}; VMUINT written; memset(text, 0x00, sizeof(text)); memset(level_text, 0x00, sizeof(level_text)); switch(level) { case VM_DEBUG_LEVEL: strcpy(level_text, "DEBUG"); break; case VM_INFO_LEVEL: strcpy(level_text, "INFO"); break; case VM_WARN_LEVEL: strcpy(level_text, "WARN"); break; case VM_ERROR_LEVEL: strcpy(level_text, "ERROR"); break; default: strcpy(level_text, "FATAL"); break; }; vm_get_time(&tm); phandle = vm_pmng_get_current_handle_ignore_status(); sprintf(text, "%d-%02.2d-%02.2d %02.2d:%02.2d:%02.2d [%s][PID:%d][%s:%d]- ", tm.year, tm.mon, tm.day, tm.hour, tm.min, tm.sec, level_text, phandle, _modFile, _lineNo); //vsprintf(text + strlen(text), fmt, ap); #ifdef __MTK_TARGET__ vsnprintf(text + strlen(text), 150, fmt, ap); #else _vsnprintf(text + strlen(text), 150, fmt, ap); #endif strcat(text, "\n\0"); MMI_PRINT(MOD_MRE, TRACE_INFO,"%s", text); if(log_init && def_log_mtk == 1) { if (FS_Write(log_file, text, (VMUINT)strlen(text), &written) < 0) { FS_Close(log_file); log_init = 0; return; } if (FS_Commit(log_file) < 0) { FS_Close(log_file); log_init = 0; return; } } }
int LDateTimeClass::getTime(datetimeInfo *time) { return vm_get_time((vm_time_t *)time);//return value:-1:failed, time is null; 0:success }