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);
	}
}
Esempio n. 2
0
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;
}
Esempio n. 4
0
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);
	}
}