Skip to content

Commit

Permalink
Issue 141: add timestamps to stderr and stdout logs (#142)
Browse files Browse the repository at this point in the history
* add timestamps to stderr and stdout logs

* send info about proxy to stderr
  • Loading branch information
jkotan authored Mar 9, 2023
1 parent d9e6066 commit cc7f06f
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 19 deletions.
4 changes: 4 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
2023-03-07 Jan Kotanski <[email protected]>
* add timestamps to stderr and stdout logs (#142)
* tagged as 3.8.1

2023-03-07 Jan Kotanski <[email protected]>
* send WARNING, ERROR, FATAL to stderr by default (#139)
* tagged as 3.8.0
Expand Down
2 changes: 1 addition & 1 deletion nxswriter/Release.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@


#: package version
__version__ = "3.8.0"
__version__ = "3.8.1"
16 changes: 11 additions & 5 deletions nxswriter/StreamSet.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import sys
import weakref
import datetime


# (:obj:`bool`) write stream to stdout
Expand Down Expand Up @@ -81,7 +82,8 @@ def fatal(self, message, std=None):
if self.log_fatal:
self.log_fatal.write(message + '\n')
if std:
sys.stderr.write(message + '\n')
sys.stderr.write(
"%s: FATAL: %s\n" % (datetime.datetime.now(), message))
sys.stderr.flush()
except Exception:
print(message)
Expand All @@ -101,7 +103,8 @@ def error(self, message, std=None):
if self.log_error:
self.log_error.write(message + '\n')
if std:
sys.stderr.write(message + '\n')
sys.stderr.write(
"%s: ERROR: %s\n" % (datetime.datetime.now(), message))
sys.stderr.flush()
except Exception:
print(message)
Expand All @@ -121,7 +124,8 @@ def warn(self, message, std=None):
if self.log_warn:
self.log_warn.write(message + '\n')
if std:
sys.stderr.write(message + '\n')
sys.stderr.write(
"%s: WARNING: %s\n" % (datetime.datetime.now(), message))
sys.stderr.flush()
except Exception:
print(message)
Expand All @@ -141,7 +145,8 @@ def info(self, message, std=None):
if self.log_info:
self.log_info.write(message + '\n')
elif std:
sys.stdout.write(message + '\n')
sys.stdout.write(
"%s: INFO: %s\n" % (datetime.datetime.now(), message))
sys.stdout.flush()
except Exception:
print(message)
Expand All @@ -161,7 +166,8 @@ def debug(self, message, std=None):
if self.log_debug:
self.log_debug.write(message + '\n')
elif std:
sys.stdout.write(message + '\n')
sys.stdout.write(
"%s: DEBUG: %s\n" % (datetime.datetime.now(), message))
sys.stdout.flush()
except Exception:
print(message)
4 changes: 2 additions & 2 deletions nxswriter/TangoSource.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,14 +250,14 @@ def setup(self, xml):
self._streams.error(
"TangoSource::setup() - "
"Cannot connect to: %s \ndefined by %s"
% (self.device, xml), std=False)
% (self.device, xml))

if not self.__proxy:
if self._streams:
self._streams.error(
"TangoSource::setup() - "
"Cannot connect to: %s \ndefined by %s"
% (self.device, xml), std=False)
% (self.device, xml))
# to make canfail works
# raise DataSourceSetupError(
# "Cannot connect to: %s \ndefined by %s" % (self.device, xml))
Expand Down
44 changes: 33 additions & 11 deletions test/StreamSet_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,9 @@ def test_fatal(self):
self.assertEqual(self.streams.log_info, None)
self.assertEqual(self.streams.log_debug, None)
self.assertEqual(self.mystdout.getvalue(), "")
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"FATAL: " + name + '\n')
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr

Expand Down Expand Up @@ -186,11 +188,15 @@ def test_fatal_log(self):
self.assertEqual(self.streams.log_debug.getvalue(), "")
self.assertEqual(self.mystdout.getvalue(), "")
if i % 3 == 0:
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"FATAL: " + name + '\n')
elif i % 3 == 1:
self.assertEqual(self.mystderr.getvalue(), '')
elif i % 3 == 2:
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"FATAL: " + name + '\n')
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr

Expand All @@ -211,7 +217,9 @@ def test_error(self):
self.assertEqual(self.streams.log_info, None)
self.assertEqual(self.streams.log_debug, None)
self.assertEqual(self.mystdout.getvalue(), "")
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"ERROR: " + name + '\n')
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr

Expand Down Expand Up @@ -260,11 +268,15 @@ def test_error_log(self):
self.assertEqual(self.streams.log_debug.getvalue(), "")
self.assertEqual(self.mystdout.getvalue(), "")
if i % 3 == 0:
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"ERROR: " + name + '\n')
elif i % 3 == 1:
self.assertEqual(self.mystderr.getvalue(), '')
elif i % 3 == 2:
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"ERROR: " + name + '\n')
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr

Expand All @@ -285,7 +297,9 @@ def test_warn(self):
self.assertEqual(self.streams.log_info, None)
self.assertEqual(self.streams.log_debug, None)
self.assertEqual(self.mystdout.getvalue(), "")
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"WARNING: " + name + '\n')
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr

Expand Down Expand Up @@ -332,11 +346,15 @@ def test_warn_log(self):
self.assertEqual(self.streams.log_debug.getvalue(), "")
self.assertEqual(self.mystdout.getvalue(), "")
if i % 3 == 0:
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"WARNING: " + name + '\n')
elif i % 3 == 1:
self.assertEqual(self.mystderr.getvalue(), '')
elif i % 3 == 2:
self.assertEqual(self.mystderr.getvalue(), name + '\n')
self.assertEqual(
self.mystderr.getvalue().split(" ", 2)[-1],
"WARNING: " + name + '\n')
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr

Expand All @@ -353,7 +371,9 @@ def test_info(self):
self.assertEqual(self.streams.log_warn, None)
self.assertEqual(self.streams.log_info, None)
self.assertEqual(self.streams.log_debug, None)
self.assertEqual(self.mystdout.getvalue(), name + '\n')
self.assertEqual(
self.mystdout.getvalue().split(" ", 2)[-1],
"INFO: " + name + '\n')
self.assertEqual(self.mystderr.getvalue(), "")
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr
Expand Down Expand Up @@ -422,7 +442,9 @@ def test_debug(self):
self.assertEqual(self.streams.log_warn, None)
self.assertEqual(self.streams.log_info, None)
self.assertEqual(self.streams.log_debug, None)
self.assertEqual(self.mystdout.getvalue(), name + '\n')
self.assertEqual(
self.mystdout.getvalue().split(" ", 2)[-1],
"DEBUG: " + name + '\n')
self.assertEqual(self.mystderr.getvalue(), "")
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr
Expand Down

0 comments on commit cc7f06f

Please sign in to comment.