@@ -110,6 +110,7 @@ def reset(self):
110110 self ._log_dir = None
111111 self .file_handlers = {}
112112 self .screen_handler = None
113+ self .syslog_handler = None
113114 self .screen_formatter = None
114115 self .file_formatter = None
115116 self ._log_handler_factory = None
@@ -250,6 +251,17 @@ def get_screen_handler(self):
250251 self .screen_handler .setFormatter (self .screen_formatter )
251252 return self .screen_handler
252253
254+ def get_syslog_handler (self ):
255+ """
256+ Get the one and only syslog handler
257+ """
258+ if self .syslog_handler is None :
259+ self .syslog_handler = logging .handlers .SysLogHandler (address = '/dev/log' , facility = 'local1' )
260+
261+ if self .file_formatter :
262+ self .syslog_handler .setFormatter (self .file_formatter )
263+ return self .syslog_handler
264+
253265 def set_log_format (self , log_format , * , log_style = None ):
254266 """
255267 Set up launch log file format.
@@ -275,6 +287,8 @@ def set_log_format(self, log_format, *, log_style=None):
275287 )
276288 for handler in self .file_handlers .values ():
277289 handler .setFormatter (self .file_formatter )
290+ if self .syslog_handler :
291+ self .syslog_handler .setFormatter (self .file_formatter )
278292 else :
279293 self .file_formatter = None
280294
@@ -328,6 +342,10 @@ def get_logger(name=None) -> logging.Logger:
328342 launch_log_file_handler = launch_config .get_log_file_handler ()
329343 if launch_log_file_handler not in logger .handlers :
330344 logger .addHandler (launch_log_file_handler )
345+ syslog_handler = launch_config .get_syslog_handler ()
346+ if syslog_handler not in logger .handlers :
347+ logger .addHandler (syslog_handler )
348+
331349 return logger
332350
333351
0 commit comments