Esempio n. 1
0
File: log.c Progetto: mideg/server
void log_printf(FILE * io, const char *format, ...)
{
  const char * prefix = "INFO";
  const int mask = LOG_CPINFO;

  /* write to the logfile, always */
  if (logfile && (log_flags & mask)) {
    int codepage = (logfile==stderr || logfile==stdout) ? stdio_codepage : 0;
    va_list args;
    va_start(args, format);
    _log_write(logfile, codepage, prefix, format, args);
    va_end(args);
  }

  /* write to io, if that's not the logfile already */
  if (logfile!=io && (log_stderr & mask)) {
    int dupe = check_dupe(format, prefix);
    if (!dupe) {
      va_list args;
      va_start(args, format);
      _log_write(io, stdio_codepage, prefix, format, args);
      va_end(args);
    }
  }
  if (log_flags & LOG_FLUSH) {
    log_flush();
  }
}
Esempio n. 2
0
File: log.c Progetto: mideg/server
void log_info(const char *format, ...)
{
  const char * prefix = "INFO";
  const int mask = LOG_CPINFO;

  /* write to the logfile, always */
  if (logfile && (log_flags & mask)) {
    va_list args;
    va_start(args, format);
    _log_write(logfile, 0, prefix, format, args);
    va_end(args);
  }

  /* write to stderr, if that's not the logfile already */
  if (logfile!=stderr && (log_stderr & mask)) {
    int dupe = check_dupe(format, prefix);
    if (!dupe) {
      va_list args;
      va_start(args, format);
      _log_write(stderr, stdio_codepage, prefix, format, args);
      va_end(args);
    }
  }
  if (log_flags & LOG_FLUSH) {
    log_flush();
  }
}
Esempio n. 3
0
static inline
void _log_pto_fetch_msg(thread_data_t* th_data)
{
    fmbuf* pbuf = th_data->plog_buf;
    char tmp_buf[LOG_MAX_LEN_PER_MSG];
    char* tmsg = NULL;
    log_msg_head_t header;

    if ( fmbuf_pop(pbuf, &header, LOG_MSG_HEAD_SIZE) ) {
        _log_event_notice(FLOG_EVENT_ERROR_ASYNC_POP);
        return;
    }

    tmsg = fmbuf_rawget(pbuf, tmp_buf, (size_t)header.len);
    if ( !tmsg ) {
        _log_event_notice(FLOG_EVENT_ERROR_ASYNC_POP);
        return;
    }

    size_t writen_len = _log_write(header.f, tmsg, (size_t)header.len);

    if ( writen_len < (size_t)header.len) {
        _log_event_notice(FLOG_EVENT_ERROR_WRITE);
    }

    fmbuf_pop(pbuf, NULL, (size_t)header.len);
}
Esempio n. 4
0
void slog_level(const char *pfx, const PgSocket *sock, const char *fmt, ...)
{
	char buf1[1024];
	char buf2[1024];
	char *user, *db, *host;
	int port;
	va_list ap;

	db = sock->pool ? sock->pool->db->name : "(nodb)";
	user = sock->auth_user ? sock->auth_user->name : "(nouser)";
	if (sock->remote_addr.is_unix) {
		host = "unix";
	} else {
		host = inet_ntoa(sock->remote_addr.ip_addr);
	}
	port = sock->remote_addr.port;

	va_start(ap, fmt);
	vsnprintf(buf1, sizeof(buf1), fmt, ap);
	va_end(ap);

	snprintf(buf2, sizeof(buf2), "%c-%p: %s/%s@%s:%d %s",
			is_server_socket(sock) ? 'S' : 'C',
			sock, db, user, host, port, buf1);

	_log_write(pfx, buf2);
}
Esempio n. 5
0
/*
 * Log messages using the logconfig configuration.
 */
ATTR_HIDDEN
void log_print(const char *fmt, ...)
{
	int ret;
	size_t written = 0;
	va_list ap;
	/* This is a hard limit for the size of the line. */
	char buf[4096];

	assert(fmt);

	if (!logconfig.fp) {
		goto end;
	}

	memset(buf, 0, sizeof(buf));
	va_start(ap, fmt);

	if (logconfig.time_status == LOG_TIME_ADD) {
		written = add_time_to_log(buf, sizeof(buf));
	}

	ret = vsnprintf(buf + written, sizeof(buf) - written, fmt, ap);
	if (ret < 0) {
		perror("[tsocks] vsnprintf log");
		goto error;
	}

	_log_write(buf, sizeof(buf));

error:
	va_end(ap);
end:
	return;
}
Esempio n. 6
0
static void _log_writeln(FILE * stream, int codepage, const char * prefix, const char *format, va_list args)
{
    size_t len = strlen(format);
    _log_write(stream, codepage, prefix, format, args);
    if (format[len - 1] != '\n') {
        fputc('\n', stream);
    }
}
Esempio n. 7
0
static
size_t _log_sync_write_to_kernel(flog_file_t* f,
                             const char* header, size_t header_len,
                             const char* log, size_t len)
{
    size_t writen_len = 0;
    pthread_mutex_lock(&g_log->lock);
    {
        writen_len += _log_write(f, header, header_len);
        writen_len += _log_write(f, log, len);
        writen_len += _log_write(f, "\n", 1);
    }
    pthread_mutex_unlock(&g_log->lock);

    if ( writen_len < len + header_len ) {
        _log_event_notice(FLOG_EVENT_ERROR_WRITE);
    }

    return writen_len;
}
Esempio n. 8
0
void main_task
   (
      uint_32 initial_data
   )
{
   ENTRY_STRUCT entry;
   _mqx_uint    result;
   _mqx_uint    i;
   uchar        c;

   /* Create the log component */
   result = _log_create_component();
   if (result != MQX_OK) {
      printf("Main task: _log_create_component failed");
      _task_block();  
   }

   /* Create a log */
   result = _log_create(MY_LOG,
      10 * (sizeof(ENTRY_STRUCT)/sizeof(_mqx_uint)), 0);
   if (result != MQX_OK) {
      printf("Main task: _log_create failed");   
      _task_block();  
   }

   /* Write the data to the log */   
   printf("Please type in 10 characters:\n");
   for (i = 0; i < 10; i++) {
      c = getchar();
      result = _log_write(MY_LOG, 2, (_mqx_uint)c, i);
      if (result != MQX_OK) {
         printf("Main task: _log_write failed");   
      }
   }

   /* Read data from the log */
   printf("\nLog contains:\n");
   while (_log_read(MY_LOG, LOG_READ_OLDEST_AND_DELETE, 2,
      (LOG_ENTRY_STRUCT_PTR)&entry) == MQX_OK)
   {
      printf("Time: %lu.%03u%03u, c=%c, i=%u\n",
         entry.HEADER.SECONDS,
         (_mqx_uint)entry.HEADER.MILLISECONDS,
         (_mqx_uint)entry.HEADER.MICROSECONDS,
         (uchar)entry.C & 0xff,
         entry.I);
   }

   /* Destroy the log */
   _log_destroy(MY_LOG);

   _task_block();

}
Esempio n. 9
0
static void log_stdio(void *data, int level, const char *module, const char *format, va_list args) {
    FILE *out = (FILE *)data;
    int codepage = (out == stderr || out == stdout) ? stdio_codepage : 0;
    const char *prefix = log_prefix(level);
    size_t len = strlen(format);

    fprintf(out, "%s: ", prefix);

    _log_write(out, codepage, format, args);
    if (format[len - 1] != '\n') {
        fputc('\n', out);
    }
    fflush(out);
}
Esempio n. 10
0
static void _log(const char *pfx, const char *fmt, va_list ap)
{
	char buf[1024];
	vsnprintf(buf, sizeof(buf), fmt, ap);
	_log_write(pfx, buf);
}