StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
rtsLog.C
1 /*
2  Logs into the rts.log
3 */
4 
5 #include <stdio.h>
6 #include <string.h>
7 #include <stdlib.h>
8 #include <getopt.h>
9 
10 #include <rtsLog.h>
11 
12 int main(int argc, char *argv[])
13 {
14  extern char *optarg ;
15  extern int optind ;
16 
17  int c;
18 
19  char logdest[128] ;
20  short logport ;
21  char loglevel[128] ;
22  char logstr[1024] ;
23  char filearg[128] ;
24  char cmdarg[128] ;
25  int linenum ;
26  int use_stdin ;
27  char buff[256] ;
28 
29  logport = RTS_LOG_PORT_TEST ; // test.log
30  strcpy(logdest,"172.16.0.1") ; // daqman on local net
31  strcpy(loglevel,INFO);
32  strcpy(filearg,"shell.sh") ;
33  strcpy(cmdarg,"shell") ;
34  linenum = 0 ;
35  use_stdin = 0 ;
36 
37  rtsLogLevel(DBG) ;
38  //rtsLogOutput(RTS_LOG_NET) ;
39 
40  memset(logstr,0,sizeof(logstr)) ;
41 
42  while((c = getopt(argc,argv,"c:d:p:w:h:f:l:i")) != EOF) {
43  switch(c) {
44  case 'c' :
45  strcpy(cmdarg,optarg) ;
46  break ;
47  case 'd' : // loglevel as string
48  strcpy(loglevel,optarg) ;
49  break ;
50  case 'w' :
51  rtsLogOutput(atoi(optarg)) ;
52  break ;
53  case 'p' :
54  logport = atoi(optarg) ;
55  break ;
56  case 'h' :
57  strcpy(logdest,optarg) ;
58  break ;
59  case 'f' :
60  strcpy(filearg,optarg) ;
61  break ;
62  case 'l' :
63  linenum = atoi(optarg) ;
64  break ;
65  case 'i' :
66  use_stdin = 1 ;
67  break ;
68  case '?' :
69  default :
70  fprintf(stderr,"Usage %s: [-d loglevel] [-p port] [-w output] [-h log host] [-c cmd]\n",argv[0]) ;
71  return -1 ;
72  }
73  }
74 
75  rtsLogAddCmd(cmdarg) ;
76  rtsLogAddDest(logdest,logport) ;
77 
78  if(use_stdin) {
79  while(!feof(stdin)) {
80  if(fgets(buff,sizeof(buff),stdin)==0) continue ;
81 
82  sprintf(logstr,"COLOR%s: %s [line %d]: %s",loglevel,filearg,linenum,buff) ;
83  rtsLogUnix_v(logstr) ;
84  }
85  }
86  else {
87 
88  sprintf(logstr,"COLOR%s: %s [line %d]:",loglevel,filearg,linenum) ;
89 
90  while(optind < argc) {
91  strcat(logstr," ") ;
92  strcat(logstr,argv[optind]) ;
93  optind++ ;
94  }
95 
96  strcat(logstr,"\n") ;
97 
98  rtsLogUnix_v(logstr) ;
99  }
100 
101  return 0 ;
102 }
103