|
1 | 1 | # -*- coding: utf-8 -*-
|
| 2 | +import logging |
| 3 | + |
2 | 4 | try:
|
3 | 5 | from .tools import _SUPPORT_MESSAGE
|
4 | 6 | except Exception:
|
5 | 7 | _SUPPORT_MESSAGE = ""
|
6 | 8 |
|
| 9 | +logger = logging.getLogger("amplpy") |
| 10 | +logger.setLevel(logging.WARNING) |
| 11 | +if not logger.hasHandlers(): |
| 12 | + handler = logging.StreamHandler() |
| 13 | + formatter = logging.Formatter("[%(levelname)s] %(message)s") |
| 14 | + handler.setFormatter(formatter) |
| 15 | + logger.addHandler(handler) |
| 16 | + logger.propagate = False |
| 17 | + |
7 | 18 | def display_error_message(exception, error=True):
|
8 |
| - msg = "\t" + str(exception).replace("\n", "\n\t") |
| 19 | + logger.setLevel(logging.WARNING) |
| 20 | + msg = "\t" + str(exception).replace(_SUPPORT_MESSAGE, "").replace("\n", "\n\t") |
9 | 21 | if error:
|
10 |
| - print(f"Error:\n{msg}{_SUPPORT_MESSAGE}") |
| 22 | + logger.error(f"\n{msg}") |
11 | 23 | else:
|
12 |
| - print(f"Warning:\n{msg}") |
| 24 | + logger.warning(f"\n{msg}") |
13 | 25 |
|
14 | 26 |
|
15 | 27 | cdef class ErrorHandler:
|
@@ -38,8 +50,9 @@ cdef class ErrorHandler:
|
38 | 50 |
|
39 | 51 | cdef void PyError(bool_c isWarning, const char* filename, int row, int offset, const char* message, void* errorHandler) except * with gil:
|
40 | 52 | handler = <ErrorHandler>errorHandler
|
41 |
| - exception = AMPLException(filename.decode('utf-8'), row, offset, message.decode('utf-8')) |
42 | 53 | if isWarning:
|
| 54 | + exception = AMPLException(filename.decode('utf-8'), row, offset, message.decode('utf-8')) |
43 | 55 | handler.warning(exception)
|
44 | 56 | else:
|
| 57 | + exception = AMPLException(filename.decode('utf-8'), row, offset, f"{message.decode('utf-8')}{_SUPPORT_MESSAGE}") |
45 | 58 | handler.error(exception)
|
0 commit comments