X-Git-Url: https://defiant.homedns.org/gitweb/?p=ros_wild_thumper.git;a=blobdiff_plain;f=src%2Fwild_thumper%2Fros_logging.py;fp=src%2Fwild_thumper%2Fros_logging.py;h=a8df11318e0bbf405792ce5b8efbbc3bd2cba5e7;hp=0000000000000000000000000000000000000000;hb=b7f9609e60bd234f15b253901eaa1c3e462cc5b1;hpb=3cdaef7b63cab6264c5d2cc0db9ff43a04eba742 diff --git a/src/wild_thumper/ros_logging.py b/src/wild_thumper/ros_logging.py new file mode 100644 index 0000000..a8df113 --- /dev/null +++ b/src/wild_thumper/ros_logging.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# -*- coding: iso-8859-15 -*- +# +# see https://answers.ros.org/question/174892/ros-log-file-change-of-time-stamping-format/ + +import os +import time +import logging +import sys +import datetime +from rosgraph.roslogging import RosStreamHandler as _RosStreamHandler, _logging_to_rospy_names, _defaultFormatter + + +class RosStreamHandler(_RosStreamHandler): + def emit(self, record): + level, color = _logging_to_rospy_names[record.levelname] + record_message = _defaultFormatter.format(record) + msg = os.environ.get('ROSCONSOLE_FORMAT', '[${severity}] [${time}]: ${message}') + msg = msg.replace('${severity}', level) + msg = msg.replace('${message}', str(record_message)) + msg = msg.replace('${walltime}', '%f' % time.time()) + msg = msg.replace('${thread}', str(record.thread)) + msg = msg.replace('${logger}', str(record.name)) + msg = msg.replace('${file}', str(record.pathname)) + msg = msg.replace('${line}', str(record.lineno)) + msg = msg.replace('${function}', str(record.funcName)) + try: + from rospy import get_name + node_name = get_name() + except ImportError: + node_name = '' + msg = msg.replace('${node}', node_name) + time_str = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + msg = msg.replace('${time}', time_str) + msg += '\n' + if record.levelno < logging.WARNING: + self._write(sys.stdout, msg, color) + else: + self._write(sys.stderr, msg, color)