(Feb-15-2020, 02:54 AM)TheHacker707 Wrote: so that I can save it to a log or something. Is there a way to do that?Can do it with logging module,look at this post.
In that post i use logging in standard library,you see i have to write boiler plate code and i import it with
import my_log
.There is a easier way if using eg Loguru.
No boiler plate code,if i use same function as in post.
from loguru import logger logger.add("output.log", backtrace=True, diagnose=True) def add(x, y): try: return(x + y) except Exception as error: logger.exception('msg') if __name__ == '__main__': add(5, '50')
Output:λ cat output.log
2020-02-15 15:42:45.104 | ERROR | __main__:add:8 - msg
Traceback (most recent call last):
File "add_guru.py", line 11, in <module>
add(5, '50')
-> <function add at 0x033308A0>
> File "add_guru.py", line 6, in add
return(x + y)
| -> '50'
-> 5
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Loguru can also catch error even if not using try:except
,bye using a decorator.from loguru import logger logger.add("file_1.log", rotation="5 MB") @logger.catch def add(x, y): return(x + y) if __name__ == '__main__': add(5, '99')
Output:λ cat file_1.log
2020-02-15 15:59:35.736 | ERROR | __main__:<module>:12 - An error has been caught in function '<module>', process 'MainProcess' (13600), thread 'MainThread' (10060):
Traceback (most recent call last):
> File "catch_guru.py", line 12, in <module>
add(5, '99')
-> <function add at 0x0320AF60>
File "catch_guru.py", line 9, in add
return(x + y)
| -> '99'
-> 5
TypeError: unsupported operand type(s) for +: 'int' and 'str'