]> arthur.barton.de Git - netatalk.git/commitdiff
New option for logger setup 'console' where we don't write the message details stuff
authorfranklahm <franklahm>
Sat, 28 Nov 2009 12:20:12 +0000 (12:20 +0000)
committerfranklahm <franklahm>
Sat, 28 Nov 2009 12:20:12 +0000 (12:20 +0000)
bin/misc/uuidtest.c
etc/cnid_dbd/cmd_dbd.c
include/atalk/logger.h
libatalk/util/logger.c

index 215f23f5a01f7d772d0ce30bcd3dc17d2cd53334..de114eb30549c7c0b907c7d07e3ca6aa9a8f353d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  $Id: uuidtest.c,v 1.1 2009-11-27 21:15:48 franklahm Exp $
+  $Id: uuidtest.c,v 1.2 2009-11-28 12:20:12 franklahm Exp $
   Copyright (c) 2008,2009 Frank Lahm <franklahm@gmail.com>
 
   This program is free software; you can redistribute it and/or modify
@@ -73,7 +73,7 @@ int main( int argc, char **argv)
     char *uuidstring = NULL;
     char *name = NULL;
 
-    setuplog("default log_error /dev/tty");
+    setuplog("console log_error /dev/tty");
 
     while ((c = getopt(argc, argv, ":vu:g:i:")) != -1) {
         switch(c) {
@@ -81,7 +81,7 @@ int main( int argc, char **argv)
         case 'v':
             if (! verbose) {
                 verbose = 1;
-                setuplog("default log_debug /dev/tty");
+                setuplog("console log_debug /dev/tty");
             }
             break;
 
index e9f9c031b96a66772e5a14b6b86133d1813f819a..f1a71c225ec101911546c266399b29ec339a2eaf 100644 (file)
@@ -1,5 +1,5 @@
 /* 
-   $Id: cmd_dbd.c,v 1.15 2009-11-25 14:59:15 franklahm Exp $
+   $Id: cmd_dbd.c,v 1.16 2009-11-28 12:20:12 franklahm Exp $
 
    Copyright (c) 2009 Frank Lahm <franklahm@gmail.com>
    
@@ -351,9 +351,9 @@ int main(int argc, char **argv)
 
     /* Setup logging. Should be portable among *NIXes */
     if (!verbose)
-        setuplog("default log_info /dev/tty");
+        setuplog("console log_info /dev/tty");
     else
-        setuplog("default log_debug /dev/tty");
+        setuplog("console log_debug /dev/tty");
 
     /* Load .volinfo file */
     if (loadvolinfo(volpath, &volinfo) == -1) {
index 0e5542946c40dddf76480fac6c36fa2a86205069..93322f297a496c96d9db32f620b1846cd0fdbe21 100644 (file)
@@ -94,7 +94,7 @@ enum logtypes {
   logtype_atalkd,
   logtype_papd,
   logtype_uams,
-
+  logtype_console,
   logtype_end_of_list_marker  /* don't put any logtypes after this */
 };
 
index 58b2244fe9f7df8158a765cb3ae2d4c306982108..477021c26252a5aeca281a5d610957d4365fe6e0 100644 (file)
@@ -63,7 +63,7 @@ Netatalk 2001 (c)
   "ATalkDaemon",                     \
   "PAPDaemon",                       \
   "UAMSDaemon",                      \
-                                     \
+  "Console",                         \
   "end_of_list_marker"}              \
 
 /* ========================================================================= 
@@ -80,6 +80,7 @@ typedef struct {
     int            facility;               /* syslog facility to use */
     int            syslog_display_options;
     enum loglevels syslog_level;           /* Log Level to send to syslog */
+    int            console;                /* if logging to console from a cli util */
 } log_config_t;
 
 /* This stores the config and options for one filelog type (e.g. logger, afpd etc.) */
@@ -96,7 +97,7 @@ typedef struct {
    Config
    ========================================================================= */
 
-/* Main log config container, must be globally visible */
+/* Main log config container */
 static log_config_t log_config = {
     0,                  /* Initialized ? 0 = no */
     0,                  /* No filelogging setup yet */
@@ -104,7 +105,8 @@ static log_config_t log_config = {
     0,                  /* syslog opened ? */
     logfacility_daemon,         /* syslog facility to use */
     logoption_ndelay|logoption_pid, /* logging options for syslog */
-    0                               /* log level for syslog */
+    0,                              /* log level for syslog */
+    0                               /* not logging to console */
 };
 
 /* Default log config: log nothing to files.
@@ -123,7 +125,8 @@ static filelog_conf_t file_configs[logtype_end_of_list_marker] = {
     DEFAULT_LOG_CONFIG, /* logtype_afpd */
     DEFAULT_LOG_CONFIG, /* logtype_atalkd */
     DEFAULT_LOG_CONFIG, /* logtype_papd */
-    DEFAULT_LOG_CONFIG  /* logtype_uams */
+    DEFAULT_LOG_CONFIG, /* logtype_uams */
+    DEFAULT_LOG_CONFIG  /* logtype_console */
 };
 
 /* These are used by the LOG macro to store __FILE__ and __LINE__ */
@@ -343,6 +346,12 @@ void log_setup(const char *filename, enum loglevels loglevel, enum logtypes logt
         file_configs[logtype].set = 0;
     }
 
+    /* Check if logging to a console */
+    if (logtype == logtype_console) {
+        log_config.console = 1;
+        logtype = logtype_default;
+    }
+
     /* Set new values */
     file_configs[logtype].filename = strdup(filename);
     file_configs[logtype].level = loglevel;
@@ -393,12 +402,12 @@ void log_setup(const char *filename, enum loglevels loglevel, enum logtypes logt
     /* in order to make it easy and fast to check the loglevels in the LOG macro! */
 
     if (logtype == logtype_default) {
-        while (logtype != logtype_end_of_list_marker) {
-            if ( ! (file_configs[logtype].set))
-                file_configs[logtype].level = loglevel;
-            logtype++;
+        int typeiter = 0;
+        while (typeiter != logtype_end_of_list_marker) {
+            if ( ! (file_configs[typeiter].set))
+                file_configs[typeiter].level = loglevel;
+            typeiter++;
         }
-        logtype = logtype_default;
     }
 
     LOG(log_debug, logtype_logger, "Setup file logging: type: %s, level: %s, file: %s",
@@ -517,19 +526,22 @@ void make_log_entry(enum loglevels loglevel, enum logtypes logtype,
         temp_buffer[len+1] = 0;
     }
 
-    generate_message_details(log_details_buffer, sizeof(log_details_buffer),
-                             file_configs[logtype].set ?
-                             file_configs[logtype].display_options :
-                             file_configs[logtype_default].display_options,
-                             loglevel, logtype);
-
-
-    /* If default wasnt setup its fd is -1 */
-    iov[0].iov_base = log_details_buffer;
-    iov[0].iov_len = strlen(log_details_buffer);
-    iov[1].iov_base = temp_buffer;
-    iov[1].iov_len = strlen(temp_buffer);
-    writev( fd,  iov, 2);
+    if ( ! log_config.console) {
+        generate_message_details(log_details_buffer, sizeof(log_details_buffer),
+                                 file_configs[logtype].set ?
+                                 file_configs[logtype].display_options :
+                                 file_configs[logtype_default].display_options,
+                                 loglevel, logtype);
+
+        /* If default wasnt setup its fd is -1 */
+        iov[0].iov_base = log_details_buffer;
+        iov[0].iov_len = strlen(log_details_buffer);
+        iov[1].iov_base = temp_buffer;
+        iov[1].iov_len = strlen(temp_buffer);
+        writev( fd,  iov, 2);
+    } else {
+        write(fd, temp_buffer, strlen(temp_buffer));
+    }
 
     inlog = 0;
 }