diff options
author | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2011-10-13 11:01:42 +0200 |
---|---|---|
committer | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2011-10-13 11:01:42 +0200 |
commit | a0e2ed4fe47ac42f831e1c0c3524ba1b86ccdf71 (patch) | |
tree | 6490377092c6d02347aca2ae598400b8a4f8043a /src/system/dlt-system.c | |
parent | 3272e8e16749b58d13e72e9a3fcadab16550ea71 (diff) | |
download | DLT-daemon-a0e2ed4fe47ac42f831e1c0c3524ba1b86ccdf71.tar.gz |
Enhanced process information logging.
Diffstat (limited to 'src/system/dlt-system.c')
-rwxr-xr-x | src/system/dlt-system.c | 63 |
1 files changed, 48 insertions, 15 deletions
diff --git a/src/system/dlt-system.c b/src/system/dlt-system.c index 1b3967c..2930a4a 100755 --- a/src/system/dlt-system.c +++ b/src/system/dlt-system.c @@ -112,8 +112,6 @@ void dlt_system_init_options(DltSystemOptions *options) strncpy(options->FiletransferContextId,DEFAULT_FILETRANSFER_CONTEXT_ID,sizeof(options->FiletransferContextId)); options->FiletransferTimeStartup = DEFAULT_FILETRANSFER_TIME_STARTUP; options->FiletransferTimeDelay = DEFAULT_FILETRANSFER_TIME_DELAY; - options->LogProcessesMode = DEFAULT_LOG_PROCESSES_MODE; - strncpy(options->LogProcessesContextId,DEFAULT_LOG_PROCESSES_CONTEXT_ID,sizeof(options->LogProcessesContextId)); options->LogFileNumber = 0; for(num=0;num<DLT_SYSTEM_LOG_FILE_MAX;num++) { options->LogFileFilename[num][0]=0; @@ -121,6 +119,14 @@ void dlt_system_init_options(DltSystemOptions *options) options->LogFileContextId[num][0]=0; options->LogFileTimeDelay[num]=0; } + options->LogProcessNumber = 0; + strncpy(options->LogProcessesContextId,DEFAULT_LOG_PROCESSES_CONTEXT_ID,sizeof(options->LogProcessesContextId)); + for(num=0;num<DLT_SYSTEM_LOG_PROCESSES_MAX;num++) { + options->LogProcessName[num][0]=0; + options->LogProcessFilename[num][0]=0; + options->LogProcessMode[num]=0; + options->LogProcessTimeDelay[num]=0; + } } int dlt_system_parse_options(DltSystemOptions *options,int argc, char* argv[]) @@ -262,16 +268,33 @@ int dlt_system_parse_configuration(DltSystemOptions *options) if(options->LogFileNumber < (DLT_SYSTEM_LOG_FILE_MAX-1) ) options->LogFileNumber++; } - else if(strcmp(token,"LogProcessesMode")==0) + else if(strcmp(token,"LogProcessesContextId")==0) { - options->LogProcessesMode = atoi(value); + strncpy(options->LogProcessesContextId,value,sizeof(options->LogProcessesContextId)); printf("Option: %s=%s\n",token,value); } - else if(strcmp(token,"LogProcessesContextId")==0) + else if(strcmp(token,"LogProcessName")==0) { - strncpy(options->LogProcessesContextId,value,sizeof(options->LogProcessesContextId)); + strncpy(options->LogProcessName[options->LogProcessNumber],value,sizeof(options->LogProcessName[options->LogProcessNumber])); + printf("Option: %s=%s\n",token,value); + } + else if(strcmp(token,"LogProcessFilename")==0) + { + strncpy(options->LogProcessFilename[options->LogProcessNumber],value,sizeof(options->LogProcessFilename[options->LogProcessNumber])); printf("Option: %s=%s\n",token,value); } + else if(strcmp(token,"LogProcessMode")==0) + { + options->LogProcessMode[options->LogProcessNumber] = atoi(value); + printf("Option: %s=%s\n",token,value); + } + else if(strcmp(token,"LogProcessTimeDelay")==0) + { + options->LogProcessTimeDelay[options->LogProcessNumber] = atoi(value); + printf("Option: %s=%s\n",token,value); + if(options->LogProcessNumber < (DLT_SYSTEM_LOG_PROCESSES_MAX-1) ) + options->LogProcessNumber++; + } else { fprintf(stderr, "Unknown option: %s=%s\n",token,value); @@ -330,8 +353,7 @@ int main(int argc, char* argv[]) DLT_REGISTER_CONTEXT(syslogContext,options.SyslogContextId,"SYSLOG Adapter"); - if(options.LogProcessesMode != DLT_SYSTEM_MODE_OFF) - DLT_REGISTER_CONTEXT(processesContext,options.LogProcessesContextId,"Log Processes"); + DLT_REGISTER_CONTEXT(processesContext,options.LogProcessesContextId,"Log Processes"); if(options.FiletransferDirectory[0]!=0) DLT_REGISTER_CONTEXT(filetransferContext,options.FiletransferContextId,"Filetransfer"); @@ -343,6 +365,10 @@ int main(int argc, char* argv[]) } + for(num=0;num<options.LogProcessNumber;num++) { + runtime.timeLogProcessDelay[num]=0; + } + /* create systemd socket */ if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { @@ -414,7 +440,7 @@ int main(int argc, char* argv[]) } } - /* log kernel version */ + /* log files */ for(num=0;num<options.LogFileNumber;num++) { if(((options.LogFileMode[num] == DLT_SYSTEM_MODE_STARTUP) && firsttime) || (options.LogFileMode[num] == DLT_SYSTEM_MODE_REGULAR) ) { @@ -429,10 +455,18 @@ int main(int argc, char* argv[]) } /* log processes information */ - if(((options.LogProcessesMode == DLT_SYSTEM_MODE_STARTUP) && firsttime) || - (options.LogProcessesMode == DLT_SYSTEM_MODE_REGULAR) ) { - dlt_system_log_processes(&options,&processesContext); - } + for(num=0;num<options.LogProcessNumber;num++) { + if(((options.LogProcessMode[num] == DLT_SYSTEM_MODE_STARTUP) && firsttime) || + (options.LogProcessMode[num] == DLT_SYSTEM_MODE_REGULAR) ) { + if(runtime.timeLogProcessDelay[num]<=0) { + dlt_system_log_process(&options,&processesContext,num); + runtime.timeLogProcessDelay[num]=options.LogProcessTimeDelay[num]-1; + } + else { + runtime.timeLogProcessDelay[num]--; + } + } + } firsttime = 0; } @@ -466,8 +500,7 @@ int main(int argc, char* argv[]) } } - if(options.LogProcessesMode != DLT_SYSTEM_MODE_OFF) - DLT_UNREGISTER_CONTEXT(processesContext); + DLT_UNREGISTER_CONTEXT(processesContext); if(options.FiletransferDirectory[0]!=0) DLT_UNREGISTER_CONTEXT(filetransferContext); |