@@ -125,7 +125,7 @@ def isEnabledFor(self, level):
|
125 | 125 | def getEffectiveLevel(self):
|
126 | 126 | return self.level or getLogger().level or _DEFAULT_LEVEL
|
127 | 127 |
|
128 |
| -def log(self, level, msg, *args, extra=None): |
| 128 | +def log(self, level, msg, *args, exc_info=False, extra=None): |
129 | 129 | if self.isEnabledFor(level):
|
130 | 130 | if args:
|
131 | 131 | if isinstance(args[0], dict):
|
@@ -138,6 +138,16 @@ def log(self, level, msg, *args, extra=None):
|
138 | 138 | for h in handlers:
|
139 | 139 | h.emit(record)
|
140 | 140 |
|
| 141 | +tb = None |
| 142 | +if isinstance(exc_info, BaseException): |
| 143 | +tb = exc_info |
| 144 | +elif hasattr(sys, "exc_info"): |
| 145 | +tb = sys.exc_info()[1] |
| 146 | +if tb: |
| 147 | +buf = io.StringIO() |
| 148 | +sys.print_exception(tb, buf) |
| 149 | +self.log(ERROR, buf.getvalue()) |
| 150 | + |
141 | 151 | def debug(self, msg, *args, **kwargs):
|
142 | 152 | self.log(DEBUG, msg, *args, **kwargs)
|
143 | 153 |
|
@@ -153,17 +163,8 @@ def error(self, msg, *args, **kwargs):
|
153 | 163 | def critical(self, msg, *args, **kwargs):
|
154 | 164 | self.log(CRITICAL, msg, *args, **kwargs)
|
155 | 165 |
|
156 |
| -def exception(self, msg, *args, exc_info=True, **kwargs): |
| 166 | +def exception(self, msg, *args, **kwargs): |
157 | 167 | self.log(ERROR, msg, *args, **kwargs)
|
158 |
| -tb = None |
159 |
| -if isinstance(exc_info, BaseException): |
160 |
| -tb = exc_info |
161 |
| -elif hasattr(sys, "exc_info"): |
162 |
| -tb = sys.exc_info()[1] |
163 |
| -if tb: |
164 |
| -buf = io.StringIO() |
165 |
| -sys.print_exception(tb, buf) |
166 |
| -self.log(ERROR, buf.getvalue()) |
167 | 168 |
|
168 | 169 | def addHandler(self, handler):
|
169 | 170 | self.handlers.append(handler)
|
|
0 commit comments