static void _log_write_in_level(t_log* logger, t_log_level level, const char* message_template, va_list list_arguments) { if (_isEnableLevelInLogger(logger, level)) { char *message, *time, *buffer; unsigned int thread_id; message = string_from_vformat(message_template, list_arguments); time = temporal_get_string_time(); thread_id = process_get_thread_id(); buffer = string_from_format("[%s] %s %s/(%d:%d): %s\n", log_level_as_string(level), time, logger->program_name, logger->pid, thread_id, message); if (logger->file != NULL) { txt_write_in_file(logger->file, buffer); } if (logger->is_active_console) { txt_write_in_stdout(buffer, log_level_as_string(level) ); } free(time); free(message); free(buffer); } }
static void log_write_in_level(t_log* logger, t_log_level level, const char* message_template, va_list arguments) { if (isEnableLevelInLogger(logger, level)) { char *message, *time, *buffer; unsigned int thread_id; message = malloc(LOG_MAX_LENGTH_MESSAGE + 1); vsprintf(message, message_template, arguments); time = temporal_get_string_time(); thread_id = pthread_self(); buffer = malloc(LOG_MAX_LENGTH_BUFFER + 1); sprintf(buffer, "[%s] %s %s/(%d:%d): %s\n", log_level_as_string(logger->detail), time, logger->program_name, logger->pid, thread_id, message); if (logger->file != NULL) { fprintf(logger->file, "%s", buffer); fflush(logger->file); } if (logger->is_active_console) { printf("%s", buffer); fflush(stdout); } free(time); free(message); free(buffer); } }
int cf_fmt_log_level(const char **textp, const int *levelp) { const char *t = log_level_as_string(*levelp); if (!t) return CFINVALID; *textp = str_edup(t); return CFOK; }
static void log_write_in_level(t_log* logger, t_log_level level, char** message_template, va_list list_arguments) { if (isEnableLevelInLogger(logger, level)) { char *message, *buffer, *nombre_hilo; unsigned int thread_id; time_t tiempo; char time_string[80]; struct tm *tmPtr; tiempo = time(NULL); tmPtr = localtime(&tiempo); strftime( time_string, 80, "%Y-%m-%d %H:%M:%S", tmPtr ); nombre_hilo = malloc(10); strcpy(nombre_hilo, message_template[0]); message = malloc(LOG_MAX_LENGTH_MESSAGE + 1); vsprintf(message, message_template[1], list_arguments); thread_id = pthread_self(); buffer = malloc(LOG_MAX_LENGTH_BUFFER + 1); sprintf(buffer, "%s - %s %s/%d [%s]: %s\n", time_string, logger->program_name, nombre_hilo, thread_id, log_level_as_string(level), message); if (logger->file != NULL) { fprintf(logger->file, "%s", buffer); fflush(logger->file); } if (logger->is_active_console) { printf("%s", buffer); fflush(stdout); } free(message); free(buffer); } }