summaryrefslogtreecommitdiff
path: root/src/daemon
diff options
context:
space:
mode:
authorAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-11-09 22:04:30 +0100
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-11-09 22:04:30 +0100
commitc9496d17980bbc9a2c5b30742e6ff1ff7ec299b2 (patch)
treed714151f647e5cbe4980fe0f3000fbbc6cdad03e /src/daemon
parent4dce943dca5f9f9f49287819504c15ded49e7fc8 (diff)
downloadDLT-daemon-c9496d17980bbc9a2c5b30742e6ff1ff7ec299b2.tar.gz
Added dlt-daemon internal logging configuration into dlt.conf file.
Internal logging to file now also possible.
Diffstat (limited to 'src/daemon')
-rwxr-xr-xsrc/daemon/dlt-daemon.c90
-rwxr-xr-xsrc/daemon/dlt-daemon.h3
-rw-r--r--src/daemon/dlt.conf11
-rwxr-xr-xsrc/daemon/dlt_daemon_common.c9
4 files changed, 60 insertions, 53 deletions
diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
index 4ab628f..fb8b2e6 100755
--- a/src/daemon/dlt-daemon.c
+++ b/src/daemon/dlt-daemon.c
@@ -135,7 +135,6 @@ void usage()
printf("DLT logging daemon\n");
printf("Options:\n");
printf(" -d Daemonize\n");
- printf(" -v Verbose mode\n");
printf(" -h Usage\n");
printf(" -c filename DLT daemon configuration file (Default: /etc/dlt.conf)\n");
} /* usage() */
@@ -158,15 +157,10 @@ int option_handling(DltDaemonLocal *daemon_local,int argc, char* argv[])
opterr = 0;
- while ((c = getopt (argc, argv, "hvdc:")) != -1)
+ while ((c = getopt (argc, argv, "hdc:")) != -1)
{
switch (c)
{
- case 'v':
- {
- daemon_local->flags.vflag = 1;
- break;
- }
case 'd':
{
daemon_local->flags.dflag = 1;
@@ -230,6 +224,9 @@ int option_file_parser(DltDaemonLocal *daemon_local)
daemon_local->flags.offlineTraceDirectory[0] = 0;
daemon_local->flags.offlineTraceFileSize = 1000000;
daemon_local->flags.offlineTraceMaxSize = 0;
+ daemon_local->flags.loggingMode = 0;
+ daemon_local->flags.loggingLevel = 6;
+ strncpy(daemon_local->flags.loggingFilename,"/tmp/dlt.log",sizeof(daemon_local->flags.loggingFilename));
/* open configuration file */
if(daemon_local->flags.cvalue[0])
@@ -246,7 +243,6 @@ int option_file_parser(DltDaemonLocal *daemon_local)
/* fetch line from configuration file */
if ( fgets (line , 1024 , pFile) != NULL )
{
- //printf("Line: %s\n",line);
pch = strtok (line," =\r\n");
token[0]=0;
value[0]=0;
@@ -275,100 +271,108 @@ int option_file_parser(DltDaemonLocal *daemon_local)
if(strcmp(token,"Verbose")==0)
{
daemon_local->flags.vflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"PrintASCII")==0)
{
daemon_local->flags.aflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"PrintHex")==0)
{
daemon_local->flags.xflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"PrintHeadersOnly")==0)
{
daemon_local->flags.sflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"Daemonize")==0)
- {
- daemon_local->flags.dflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"SendSerialHeader")==0)
{
daemon_local->flags.lflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"SendContextRegistration")==0)
{
daemon_local->flags.rflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"SendMessageTime")==0)
{
daemon_local->flags.sendMessageTime = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"RS232SyncSerialHeader")==0)
{
daemon_local->flags.mflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"TCPSyncSerialHeader")==0)
{
daemon_local->flags.nflag = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"RS232DeviceName")==0)
{
strncpy(daemon_local->flags.yvalue,value,sizeof(daemon_local->flags.yvalue));
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"RS232Baudrate")==0)
{
strncpy(daemon_local->flags.bvalue,value,sizeof(daemon_local->flags.bvalue));
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"ECUId")==0)
{
strncpy(daemon_local->flags.evalue,value,sizeof(daemon_local->flags.evalue));
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"PersistanceStoragePath")==0)
{
strncpy(daemon_local->flags.ivalue,value,sizeof(daemon_local->flags.ivalue));
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
+ }
+ else if(strcmp(token,"LoggingMode")==0)
+ {
+ daemon_local->flags.loggingMode = atoi(value);
+ //printf("Option: %s=%s\n",token,value);
+ }
+ else if(strcmp(token,"LoggingLevel")==0)
+ {
+ daemon_local->flags.loggingLevel = atoi(value);
+ //printf("Option: %s=%s\n",token,value);
+ }
+ else if(strcmp(token,"LoggingFilename")==0)
+ {
+ strncpy(daemon_local->flags.loggingFilename,value,sizeof(daemon_local->flags.loggingFilename));
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"SharedMemorySize")==0)
{
daemon_local->flags.sharedMemorySize = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"OfflineTraceDirectory")==0)
{
strncpy(daemon_local->flags.offlineTraceDirectory,value,sizeof(daemon_local->flags.offlineTraceDirectory));
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"OfflineTraceFileSize")==0)
{
daemon_local->flags.offlineTraceFileSize = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else if(strcmp(token,"OfflineTraceMaxSize")==0)
{
daemon_local->flags.offlineTraceMaxSize = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ //printf("Option: %s=%s\n",token,value);
}
else
{
fprintf(stderr, "Unknown option: %s=%s\n",token,value);
}
}
- //printf ("Token: %s\n",pch);
-
}
else
{
@@ -414,8 +418,10 @@ int main(int argc, char* argv[])
return -1;
}
- /* Initialize logging facility */
- dlt_log_init(daemon_local.flags.dflag);
+ /* Initialize internal logging facility */
+ dlt_log_set_filename(daemon_local.flags.loggingFilename);
+ dlt_log_set_level(daemon_local.flags.loggingLevel);
+ dlt_log_init(daemon_local.flags.loggingMode);
/* Print version information */
dlt_get_version(version);
@@ -545,22 +551,6 @@ int dlt_daemon_local_init_p1(DltDaemon *daemon, DltDaemonLocal *daemon_local, in
signal(SIGQUIT, dlt_daemon_signal_handler);
signal(SIGINT, dlt_daemon_signal_handler);
-#if 0
- /* open DLT output file */
- daemon_local->ohandle=-1;
- if (daemon_local->flags.ovalue[0])
- {
- daemon_local->ohandle = open(daemon_local->flags.ovalue,O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); /* mode: wb */
- if (daemon_local->ohandle == -1)
- {
- /* Return value ignored, dlt daemon will exit */
- dlt_file_free(&(daemon_local->file),daemon_local->flags.vflag);
- sprintf(str,"Output file %s cannot be opened!\n",daemon_local->flags.ovalue);
- dlt_log(LOG_ERR, str);
- return -1;
- } /* if */
- } /* if */
-#endif
/* init offline trace */
if(((daemon->mode == DLT_USER_MODE_INTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH)) && daemon_local->flags.offlineTraceDirectory[0])
{
diff --git a/src/daemon/dlt-daemon.h b/src/daemon/dlt-daemon.h
index 9d71a6e..bc3ba39 100755
--- a/src/daemon/dlt-daemon.h
+++ b/src/daemon/dlt-daemon.h
@@ -110,6 +110,9 @@ typedef struct
char offlineTraceDirectory[256]; /**< (String: Directory) Store DLT messages to local directory (Default: /etc/dlt.conf) */
int offlineTraceFileSize; /**< (int) Maximum size in bytes of one trace file (Default: 1000000) */
int offlineTraceMaxSize; /**< (int) Maximum size of all trace files (Default: 4000000) */
+ int loggingMode; /**< (int) The logging console for internal logging of dlt-daemon (Default: 0) */
+ int loggingLevel; /**< (int) The logging level for internal logging of dlt-daemon (Default: 6) */
+ char loggingFilename[256]; /**< (String: Filename) The logging filename if internal logging mode is log to file (Default: /tmp/log) */
} DltDaemonFlags;
/**
diff --git a/src/daemon/dlt.conf b/src/daemon/dlt.conf
index 629794d..a410d19 100644
--- a/src/daemon/dlt.conf
+++ b/src/daemon/dlt.conf
@@ -30,6 +30,17 @@ SharedMemorySize = 40000
# Directory where to store the persistant configuration (Default: /tmp)
# PersistanceStoragePath = /tmp
+# The logging console for internal logging of dlt-daemon (Default: 0)
+# 0 = log to stdout, 1 = log to syslog, 2 = log to file (see LoggingFilename)
+LoggingMode = 2
+
+# The internal log level, up to which logs are written (Default: 6)
+# LOG_EMERG = 0, LOG_ALERT = 1, LOG_CRIT = 2, LOG_ERR = 3, LOG_WARNING = 4, LOG_NOTICE = 5, LOG_INFO = 6, LOG_DEBUG = 7
+LoggingLevel = 6
+
+# The logging filename if internal logging mode is log to file (Default: /tmp/log)
+LoggingFilename = /tmp/dlt.log
+
########################################################################
# Offline Trace memory #
########################################################################
diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c
index dbb1e7a..4877825 100755
--- a/src/daemon/dlt_daemon_common.c
+++ b/src/daemon/dlt_daemon_common.c
@@ -907,11 +907,13 @@ int dlt_daemon_configuration_load(DltDaemon *daemon,const char *filename, int ve
if(strcmp(token,"LoggingMode")==0)
{
daemon->mode = atoi(value);
- printf("Option: %s=%s\n",token,value);
+ sprintf(str,"Runtime Option: %s=%d\n",token,daemon->mode);
+ dlt_log(LOG_INFO, str);
}
else
{
- fprintf(stderr, "Unknown option: %s=%s\n",token,value);
+ sprintf(str,"Unknown option: %s=%s\n",token,value);
+ dlt_log(LOG_ERR, str);
}
}
}
@@ -924,7 +926,8 @@ int dlt_daemon_configuration_load(DltDaemon *daemon,const char *filename, int ve
}
else
{
- fprintf(stderr, "Cannot open configuration file: %s\n",filename);
+ sprintf(str,"Cannot open configuration file: %s\n",filename);
+ dlt_log(LOG_WARNING, str);
}
return 0;