Skip to content

Commit 1d05720

Browse files
committed
add logging module
1 parent 7f431a9 commit 1d05720

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

batchglm/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22

33
__version__ = get_versions()['version']
44
del get_versions
5+
6+
from .log_cfg import logger, unconfigure_logging, enable_logging

batchglm/api/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from ..log_cfg import logger, unconfigure_logging, enable_logging
2+
13
from . import models
24
from . import data
35
from . import utils

batchglm/log_cfg.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import sys
2+
3+
import logging
4+
5+
logger = logging.getLogger('.'.join(__name__.split('.')[:-1]))
6+
7+
_is_interactive = bool(getattr(sys, 'ps1', sys.flags.interactive))
8+
_hander = None
9+
10+
11+
def unconfigure_logging():
12+
if _hander is not None:
13+
logger.removeHandler(_hander)
14+
15+
logger.setLevel(logging.NOTSET)
16+
17+
18+
def enable_logging(verbosity=logging.ERROR, stream=sys.stderr, format=logging.BASIC_FORMAT):
19+
unconfigure_logging()
20+
21+
logger.setLevel(verbosity)
22+
_handler = logging.StreamHandler(stream)
23+
_handler.setFormatter(logging.Formatter(format, None))
24+
logger.addHandler(_handler)
25+
26+
27+
# If we are in an interactive environment (like Jupyter), set loglevel to INFO and pipe the output to stdout.
28+
if _is_interactive:
29+
enable_logging(logging.INFO, sys.stdout)
30+
else:
31+
enable_logging(logging.WARNING, sys.stderr)

0 commit comments

Comments
 (0)