comparison env/lib/python3.9/site-packages/coloredlogs/demo.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 # Demonstration of the coloredlogs package.
2 #
3 # Author: Peter Odding <peter@peterodding.com>
4 # Last Change: January 14, 2018
5 # URL: https://coloredlogs.readthedocs.io
6
7 """A simple demonstration of the `coloredlogs` package."""
8
9 # Standard library modules.
10 import os
11 import time
12
13 # Modules included in our package.
14 import coloredlogs
15
16 # If my verbose logger is installed, we'll use that for the demo.
17 try:
18 from verboselogs import VerboseLogger as getLogger
19 except ImportError:
20 from logging import getLogger
21
22 # Initialize a logger for this module.
23 logger = getLogger(__name__)
24
25 DEMO_DELAY = float(os.environ.get('COLOREDLOGS_DEMO_DELAY', '1'))
26 """The number of seconds between each message emitted by :func:`demonstrate_colored_logging()`."""
27
28
29 def demonstrate_colored_logging():
30 """Interactively demonstrate the :mod:`coloredlogs` package."""
31 # Determine the available logging levels and order them by numeric value.
32 decorated_levels = []
33 defined_levels = coloredlogs.find_defined_levels()
34 normalizer = coloredlogs.NameNormalizer()
35 for name, level in defined_levels.items():
36 if name != 'NOTSET':
37 item = (level, normalizer.normalize_name(name))
38 if item not in decorated_levels:
39 decorated_levels.append(item)
40 ordered_levels = sorted(decorated_levels)
41 # Initialize colored output to the terminal, default to the most
42 # verbose logging level but enable the user the customize it.
43 coloredlogs.install(level=os.environ.get('COLOREDLOGS_LOG_LEVEL', ordered_levels[0][1]))
44 # Print some examples with different timestamps.
45 for level, name in ordered_levels:
46 log_method = getattr(logger, name, None)
47 if log_method:
48 log_method("message with level %s (%i)", name, level)
49 time.sleep(DEMO_DELAY)