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 ; }
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); } } }
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); }
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); }
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); }
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; }