h-sendai / DAQ-Middleware

DAQ-Middleware Source code
Other
2 stars 5 forks source link

DAQコンポーネントのログを追加書き込みにする #12

Open h-sendai opened 3 years ago

h-sendai commented 3 years ago

今はDAQコンポーネントが起動されると既存/tmp/daqmw/log.SampleReaderCompがいったん消されて新たに同名のファイルが作られる。追加書き込みにするオプションをrun.pyに追加する。open(..., 'w')になっているのをopen(..., 'a')に変更するのとオプション引数の追加を行うことで実現できる。

diff --git a/bin/run.py b/bin/run.py
index 9a8ba66..6d24010 100755
--- a/bin/run.py
+++ b/bin/run.py
@@ -120,6 +120,7 @@ def opt():
     global giop_max_msg_size
     global daqmw_log_dir
     global append_datetime_to_log
+    global append_log
     global append_ip_address_to_log

     usage = "run.py [OPTIONS] [CONFIG_FILE]"
@@ -134,8 +135,11 @@ def opt():
     parser.set_defaults(giop_max_msg_size=False)
     parser.set_defaults(daqmw_log_dir='/tmp/daqmw')
     parser.set_defaults(append_datetime_to_log=False)
+    parser.set_defaults(append_log=False)
     parser.set_defaults(append_ip_address_to_log=False)

+    parser.add_option("-a", "--append-log",
+                      action="store_true", dest="append_log", help="append log file (not truncate)")
     parser.add_option("-c", "--console",
                       action="store_true", dest="console", help="console mode. default is HTTP mode")
     parser.add_option("-l", "--local",
@@ -178,6 +182,7 @@ def opt():
     giop_max_msg_size        = options.giop_max_msg_size
     daqmw_log_dir            = options.daqmw_log_dir
     append_datetime_to_log   = options.append_datetime_to_log
+    append_log               = options.append_log
     append_ip_address_to_log = options.append_ip_address_to_log

     # XXX
@@ -575,7 +580,10 @@ def start_comp(command_line, log='', foreground='no', no_stdin = 'yes', myenv =
                 sys.stderr.write('%s: %s\n' % (dir, strerror))
                 raise
         try:
-            log_fd = open(log, "w")
+            if append_log:
+                log_fd = open(log, "a")
+            else:
+                log_fd = open(log, "w")
         except IOError, (errno, strerror):
             print 'cannot open %s: %s' % (log, strerror)
             raise