I want to redirect the log from gringo to my own logger, s.t. everything is nice and ordered:
The following program ends with an exception of a syntax error, which is expected. But the logging seems to report an additional error:
--- Logging error ---
Traceback (most recent call last):
File "...miniconda3/envs/ngo/lib/python3.10/logging/__init__.py", line 1100, in emit
msg = self.format(record)
File "...miniconda3/envs/ngo/lib/python3.10/logging/__init__.py", line 943, in format
return fmt.format(record)
File "...miniconda3/envs/ngo/lib/python3.10/logging/__init__.py", line 678, in format
record.message = record.getMessage()
File "...miniconda3/envs/ngo/lib/python3.10/logging/__init__.py", line 368, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
File "...work/krbiz/potassco/ngo/log.py", line 13, in <module>
main()
File "...work/krbiz/potassco/ngo/log.py", line 10, in main
parse_string("*", prg.append, logger=logging.warning)
File "...miniconda3/envs/ngo/lib/python3.10/site-packages/clingo/ast.py", line 1347, in parse_string
_lib.clingo_ast_parse_string(
File "...miniconda3/envs/ngo/lib/python3.10/site-packages/clingo/core.py", line 95, in _pyclingo_logger_callback
handler(MessageCode(code), _to_str(message))
Message: <MessageCode.RuntimeError: 1>
Arguments: ('<string>:1:1-2: error: syntax error, unexpected *\n',)
Traceback (most recent call last):
File "...work/krbiz/potassco/ngo/log.py", line 13, in <module>
main()
File "...work/krbiz/potassco/ngo/log.py", line 10, in main
parse_string("*", prg.append, logger=logging.warning)
File "...miniconda3/envs/ngo/lib/python3.10/site-packages/clingo/ast.py", line 1346, in parse_string
_handle_error(
File "...miniconda3/envs/ngo/lib/python3.10/site-packages/clingo/_internal.py", line 75, in _handle_error
raise RuntimeError(msg)
RuntimeError: syntax error
I want to redirect the log from gringo to my own logger, s.t. everything is nice and ordered: The following program ends with an exception of a syntax error, which is expected. But the logging seems to report an additional error:
produces
How can I handle this case correctly ?