Skip to content

Commit 7ec1e45

Browse files
committed
Do not invoke logging.basicConfig via debug=True
1 parent 6de2b31 commit 7ec1e45

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

julia/core.py

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
from __future__ import print_function, absolute_import
1818

1919
from logging import getLogger
20+
# Not importing `logging` module here so that using `logging.debug`
21+
# instead of `logger.debug` becomes an error.
22+
2023
import atexit
2124
import ctypes
2225
import ctypes.util
@@ -49,17 +52,35 @@
4952

5053

5154
logger = getLogger("julia")
55+
_loghandler = None
5256

5357

54-
def enable_debug():
58+
def get_loghandler():
59+
"""
60+
Get `logging.StreamHandler` private to PyJulia.
61+
"""
62+
global _loghandler
63+
if _loghandler is None:
64+
import logging
65+
66+
formatter = logging.Formatter("%(levelname)s %(message)s")
67+
68+
_loghandler = logging.StreamHandler()
69+
_loghandler.setFormatter(formatter)
70+
71+
logger.addHandler(_loghandler)
72+
return _loghandler
73+
74+
75+
def set_loglevel(level):
5576
import logging
56-
# Importing `logging` module here so that using `logging.debug`
57-
# instead of `logger.debug` outside of this function becomes an
58-
# error.
5977

60-
logging.basicConfig(
61-
format="%(levelname)s %(message)s",
62-
level=logging.DEBUG)
78+
get_loghandler()
79+
logger.setLevel(getattr(logging, level, level))
80+
81+
82+
def enable_debug():
83+
set_loglevel("DEBUG")
6384

6485

6586
# As setting up Julia modifies os.environ, we need to cache it for

0 commit comments

Comments
 (0)