providing option to connect to memcache at general connect time
[OpenSRF.git] / src / router / osrf_router_main.c
index 8d715cd..a789d98 100644 (file)
@@ -1,16 +1,15 @@
 #include "osrf_router.h"
 #include "opensrf/osrfConfig.h"
 #include "opensrf/utils.h"
-#include "opensrf/logging.h"
+#include "opensrf/log.h"
 #include <signal.h>
 
 osrfRouter* __osrfRouter = NULL;
 
 void routerSignalHandler( int signal ) {
-       warning_handler("Received signal [%d], cleaning up...", signal );
+       osrfLogWarning( OSRF_LOG_MARK, "Received signal [%d], cleaning up...", signal );
        osrfConfigCleanup();
        osrfRouterFree(__osrfRouter);
-       log_free();
 }
 
 static int __setupRouter( char* config, char* context );
@@ -19,7 +18,7 @@ static int __setupRouter( char* config, char* context );
 int main( int argc, char* argv[] ) {
 
        if( argc < 3 ) {
-               fatal_handler( "Usage: %s <path_to_config_file> <config_context>", argv[0] );
+               osrfLogError( OSRF_LOG_MARK,  "Usage: %s <path_to_config_file> <config_context>", argv[0] );
                exit(0);
        }
 
@@ -36,11 +35,9 @@ int main( int argc, char* argv[] ) {
 
 int __setupRouter( char* config, char* context ) {
 
-       fprintf(stderr, "Launching router with config %s and config context %s", config, context );
        osrfConfig* cfg = osrfConfigInit( config, context );
        osrfConfigSetDefaultConfig(cfg);
 
-
        char* server                    = osrfConfigGetValue(NULL, "/transport/server");
        char* port                              = osrfConfigGetValue(NULL, "/transport/port");
        char* username                  = osrfConfigGetValue(NULL, "/transport/username");
@@ -50,17 +47,27 @@ int __setupRouter( char* config, char* context ) {
        /* set up the logger */
        char* level = osrfConfigGetValue(NULL, "/loglevel");
        char* log_file = osrfConfigGetValue(NULL, "/logfile");
+       char* facility = osrfConfigGetValue(NULL, "/syslog");
 
        int llevel = 1;
        if(level) llevel = atoi(level);
 
-       if(!log_init( llevel, log_file )) 
-               fprintf(stderr, "Unable to init logging, going to stderr...\n" );
+       if(!log_file) { fprintf(stderr, "Log file needed\n"); return -1; }
+
+       if(!strcmp(log_file, "syslog")) {
+               osrfLogInit( OSRF_LOG_TYPE_SYSLOG, "router", llevel );
+               osrfLogSetSyslogFacility(osrfLogFacilityToInt(facility));
+
+       } else {
+               osrfLogInit( OSRF_LOG_TYPE_FILE, "router", llevel );
+               osrfLogSetFile( log_file );
+       }
 
+       free(facility);
        free(level);
        free(log_file);
 
-       info_handler( "Router connecting as: server: %s port: %s "
+       osrfLogInfo(  OSRF_LOG_MARK, "Router connecting as: server: %s port: %s "
                        "user: %s resource: %s", server, port, username, resource );
 
        int iport = 0;
@@ -73,13 +80,15 @@ int __setupRouter( char* config, char* context ) {
 
        int i;
        for( i = 0; i != tservers->size; i++ ) 
-               info_handler( "Router adding trusted server: %s", osrfStringArrayGetString( tservers, i ) );
+               osrfLogInfo( OSRF_LOG_MARK,  "Router adding trusted server: %s", osrfStringArrayGetString( tservers, i ) );
 
        for( i = 0; i != tclients->size; i++ ) 
-               info_handler( "Router adding trusted client: %s", osrfStringArrayGetString( tclients, i ) );
+               osrfLogInfo( OSRF_LOG_MARK,  "Router adding trusted client: %s", osrfStringArrayGetString( tclients, i ) );
 
-       if( tclients->size == 0 || tservers->size == 0 )
-               fatal_handler("We need trusted servers and trusted client to run the router...");
+       if( tclients->size == 0 || tservers->size == 0 ) {
+               osrfLogError( OSRF_LOG_MARK, "We need trusted servers and trusted client to run the router...");
+               return -1;
+       }
 
        osrfRouter* router = osrfNewRouter( server, 
                        username, resource, password, iport, tclients, tservers );
@@ -101,7 +110,6 @@ int __setupRouter( char* config, char* context ) {
        osrfRouterRun( router );
 
        return -1;
-
 }