Esempio n. 1
0
NEINT32 _logmsg(NEINT8 *file, NEINT32 line, NEINT32 level, const nechar_t *stm,...) 
{
	nechar_t buf[1024*4] ;
	nechar_t *p = buf;
#ifdef NE_UNICODE
	nechar_t filebufs[128] ;
#endif
	va_list arg;
	NEINT32 done;
	FILE *log_fp = fopen(NE_LOG_FILE, "a");
	
	if(!log_fp) {
		return -1 ;
	}
#ifdef NE_UNICODE
	strtowcs(file,filebufs,128) ;
	nesnprintf(p, 4096,_NET("%s in %s [%s: file %s line %d ]"), 
			log_level_str(level), ne_process_name(), ne_get_datatimestr(),filebufs, line) ;
#else 
	nesnprintf(p, 4096,_NET("%s in %s [%s: file %s line %d ]"), 
			log_level_str(level),ne_process_name(),  ne_get_datatimestr(),file, line) ;
#endif

	p += nestrlen(p) ;
	
	va_start (arg, stm);
	done = nevsprintf (p, sizeof(buf),stm, arg);
	//done = _vsnprintf (p, sizeof(buf),stm, arg);
	va_end (arg);
	
	nefprintf(log_fp,_NET("%s\n"), buf) ;
	
	fclose(log_fp) ;
	printf_dbg(buf) ;
	//NETRAC(buf) ;
	//NETRAC("\n") ;
	return done ;
}
Esempio n. 2
0
void slave_get_options (int *argc,char ***argv, int *force, struct slave_database *sdb) {
    int opt;
    char *hour,*min;

    while ((opt = getopt (*argc,*argv,"a:n:fl:c:ohv")) != -1) {
        switch (opt) {
        case 'a':
            sdb->limits.autoenable.flags |= AEF_ACTIVE;
            hour = optarg;
            if ((min = strchr (hour,':')) == NULL) {
                usage ();
                exit (1);
            }
            *min = '\0';
            min++;
            sdb->limits.autoenable.h = atoi (hour) % 24;
            sdb->limits.autoenable.m = atoi (min) % 60;
            printf ("Autoenable time from command line: %02i:%02i\n",sdb->limits.autoenable.h,sdb->limits.autoenable.m);
            break;
        case 'n':
            sdb->limits.nmaxcpus = atoi (optarg);
            sdb->flags |= SDBF_SETMAXCPUS;
            break;
        case 'c':
            strncpy(sdb->conf,optarg,PATH_MAX-1);
            printf ("Reading config file from: '%s'\n",sdb->conf);
            break;
        case 'f':
            *force = 1;
            fprintf (stderr,"WARNING: Forcing usage of pre-existing shared memory (-f). Do not do this unless you really know what it means.\n");
            break;
        case 'l':
            log_level_severity_set (atoi(optarg));
            printf ("Logging level set to: %s\n",log_level_str(loglevel));
            break;
        case 'o':
            log_level_out_set (L_ONSCREEN);
            printf ("Logging on screen.\n");
            break;
        case 'v':
            show_version (*argv);
            exit (0);
        case '?':
        case 'h':
            usage();
            exit (0);
        }
    }
}
Esempio n. 3
0
static void
mongoc_log_default_handler (mongoc_log_level_t  log_level,
                            const char         *log_domain,
                            const char         *message,
                            void               *user_data)
{
   struct timeval tv;
   struct tm tt;
   time_t t;
   FILE *stream;
   char nowstr[32];

   bson_gettimeofday(&tv, NULL);
   t = tv.tv_sec;

#ifdef _WIN32
#  ifdef _MSC_VER
     localtime_s(&tt, &t);
#  else
     tt = *(localtime(&t));
#  endif
#else
   localtime_r(&t, &tt);
#endif

   strftime (nowstr, sizeof nowstr, "%Y/%m/%d %H:%M:%S", &tt);

   switch (log_level) {
   case MONGOC_LOG_LEVEL_ERROR:
   case MONGOC_LOG_LEVEL_CRITICAL:
   case MONGOC_LOG_LEVEL_WARNING:
      stream = stderr;
   case MONGOC_LOG_LEVEL_MESSAGE:
   case MONGOC_LOG_LEVEL_INFO:
   case MONGOC_LOG_LEVEL_DEBUG:
   case MONGOC_LOG_LEVEL_TRACE:
   default:
      stream = stdout;
   }

   fprintf (stream,
            "%s.%04ld: %8s: %12s: %s\n",
            nowstr,
            tv.tv_usec / 1000L,
            log_level_str(log_level),
            log_domain,
            message);
}
Esempio n. 4
0
static void
mongoc_log_default_handler (mongoc_log_level_t  log_level,
                            const char         *log_domain,
                            const char         *message,
                            void               *user_data)
{
    struct timeval tv;
    struct tm tt;
    time_t t;
    char nowstr[32];

    gettimeofday(&tv, NULL);
    t = tv.tv_sec;
    tt = *localtime(&t);

    strftime(nowstr, sizeof nowstr, "%Y/%m/%d %H:%M:%S", &tt);

    fprintf(stderr, "%s.%04ld: %8s: %12s: %s\n",
            nowstr,
            tv.tv_usec / 1000L,
            log_level_str(log_level),
            log_domain,
            message);
}
Esempio n. 5
0
void
log_auto (int level, char *fmt, ...) {
  // this will be the way to send log messages when no one is known
  // for sure.
  FILE *f_log = stderr;
  char time_buf[BUFFERLEN];
  char job_buf[BUFFERLEN];
  char task_buf[BUFFERLEN];
  char computer_buf[BUFFERLEN];
  char msg[MAXLOGLINELEN];
  char bkpmsg[MAXLOGLINELEN];
  char origmsg[MAXLOGLINELEN];

  va_list ap;

  if (!log_level_dest(level))
    return;

  if (log_on_screen()) {
    f_log = stderr;
  } else {
    switch (logtool) {
    case DRQ_LOG_TOOL_MASTER:
      f_log = log_master_open(level);
      break;
    case DRQ_LOG_TOOL_SLAVE_TASK:
      if (logger_task) {
	f_log = log_slave_open_task(level,logger_task);
	break;
      }
    case DRQ_LOG_TOOL_SLAVE:
    default:
      if (gethostname(computer_buf,BUFFERLEN) != -1) {
	f_log = log_slave_open_computer(level,computer_buf);
      } else {
	log_level_out_set(L_ONSCREEN);
	f_log = stderr;
      }
    }
  }

  va_start (ap,fmt);
  vsnprintf (origmsg,MAXLOGLINELEN,fmt,ap);
  va_end (ap);

  log_get_time_str (time_buf,BUFFERLEN);
  snprintf (bkpmsg,MAXLOGLINELEN,"%s :",time_buf); // Time and pid
  strcpy(msg,bkpmsg);
  snprintf (bkpmsg,MAXLOGLINELEN,"%s | %6s |",msg,log_level_str(level)); // Log level
  strcpy(msg,bkpmsg);

  if (logger_job) {
    log_get_job_str (job_buf,BUFFERLEN);
    snprintf (bkpmsg,MAXLOGLINELEN,"%s %s :",msg,job_buf);
    strcpy(msg,bkpmsg);
  }						       

  if (logger_computer) {
    log_get_computer_str (computer_buf,BUFFERLEN);
    snprintf (bkpmsg,MAXLOGLINELEN,"%s %s :",msg,computer_buf);
    strcpy(msg,bkpmsg);
  }						       
  if (logger_task) {
    log_get_task_str (task_buf,BUFFERLEN);
    snprintf (bkpmsg,MAXLOGLINELEN,"%s %s :",msg,task_buf);
    strcpy(msg,bkpmsg);
  }

  fprintf (f_log,"%s -> MSG: %s\n",msg,origmsg);

  if (fileno(f_log) != fileno(stderr))
    fclose(f_log);

}
Esempio n. 6
0
gboolean maincfg_new(gchar *fname) {
    FILE *in;
//    gchar *logfname;
    gchar line[BUFSIZ];
    gchar key[32], value[1024];

    if (Cfg)
        g_hash_table_destroy(Cfg);

    Cfg = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
    assert(Cfg);

    /* setting defaults */
    _set_default(Cfg, "ipvssync_log",       "/var/log/surealived/ipvssync.log");
    _set_default(Cfg, "use_log",            "false");
    _set_default(Cfg, "ipvssync_logging",   "debug");
    _set_default(Cfg, "use_syslog",         "false");
    _set_default(Cfg, "use_tm_in_syslog",   "false");
    _set_default(Cfg, "no_sync",            "false");
    _set_default(Cfg, "lock_sync_file",     "/var/lib/surealived/ipvsfull.lock");
    _set_default(Cfg, "full_sync_file",     "/var/lib/surealived/ipvsfull.cfg");
    _set_default(Cfg, "full_reload_file",   "/var/lib/surealived/ipvsfull.reload");
    _set_default(Cfg, "diff_sync_dir",      "/var/lib/surealived/diffs");

    in = fopen(fname, "r");
    if (in) {
        while (fgets(line, BUFSIZ, in)) {
            g_strchomp(line);

            if (line[0] == '#')
                continue;

            if (sscanf(line, "%32s %1024s", key, value) == 2)
                g_hash_table_replace(Cfg, g_strdup(key), g_strdup(value));
        }

        fclose(in);
    }

    /* Open log file (global flog) - if not already set to stderr */
    G_logfname = g_hash_table_lookup(Cfg, "ipvssync_log");
    if (!strcmp(G_logfname, "stderr"))
        G_logfd = STDERR_FILENO;

    if (toupper(((gchar *)g_hash_table_lookup(Cfg, "use_log"))[0]) == 'T')
        G_use_log = TRUE;

    if (toupper(((gchar *)g_hash_table_lookup(Cfg, "use_syslog"))[0]) == 'T')
        G_use_syslog = TRUE;

    if (toupper(((gchar *)g_hash_table_lookup(Cfg, "use_tm_in_syslog"))[0]) == 'T')
        G_use_tm_in_syslog = TRUE;


    log_init(&G_logfd, G_logfname, G_use_log, G_use_syslog, G_use_tm_in_syslog, "ipvssync");

    /* Set global variable: logging */
    if (G_logging < 0)
        G_logging = log_level_no(g_hash_table_lookup(Cfg, "ipvssync_logging"));

    log_message(2, TRUE, TRUE, "Starting ipvssync");
    log_message(2, TRUE, TRUE, "logging level: %d", G_logging);
    log_message(2, TRUE, TRUE, "logging level: %s", log_level_str(G_logging));
    if (G_logfname)
        log_message(2, TRUE, TRUE, "log file: %s", G_logfname);

    if (toupper(((gchar *)g_hash_table_lookup(Cfg, "no_sync"))[0]) == 'T')
        G_no_sync = TRUE;
    G_lock_sync_file = g_hash_table_lookup(Cfg, "lock_sync_file");
    G_full_sync_file = g_hash_table_lookup(Cfg, "full_sync_file");
    G_full_reload_file = g_hash_table_lookup(Cfg, "full_reload_file");
    G_diff_sync_dir = g_hash_table_lookup(Cfg, "diff_sync_dir");
    
    return in ? TRUE : FALSE;
}