pyTermTk - LoggingπΆοΈ
IntroπΆοΈ
The TTkLog class provide a set of api to allow and configure the logging.
ExamplesπΆοΈ
Example 1 - Log to fileπΆοΈ
From example1.logtofile.py (tryItOnline):
import TermTk as ttk
# session.log is used by default
ttk.TTkLog.use_default_file_logging()
# Push some Debug messages
ttk.TTkLog.info( "Test Info Message")
ttk.TTkLog.debug( "Test Debug Message")
ttk.TTkLog.error( "Test Error Message")
ttk.TTkLog.warn( "Test Warning Message")
ttk.TTkLog.critical("Test Critical Message")
Example 2 - Log to stdoutπΆοΈ
From example2.logtostdout.py (tryItOnline):
import TermTk as ttk
ttk.TTkLog.use_default_stdout_logging()
# Push some Debug messages
ttk.TTkLog.info( "Test Info Message")
ttk.TTkLog.debug( "Test Debug Message")
ttk.TTkLog.error( "Test Error Message")
ttk.TTkLog.warn( "Test Warning Message")
ttk.TTkLog.critical("Test Critical Message")
ttk.TTkLog.fatal( "Test Fatal Message")
Example 3 - custom loggingπΆοΈ
From example3.customlogging.py (tryItOnline):
import TermTk as ttk
# define the callback used to process the log message
def message_handler(mode, context, message):
msgType = "NONE"
if mode == ttk.TTkLog.InfoMsg: msgType = "[INFO]"
elif mode == ttk.TTkLog.WarningMsg: msgType = "[WARNING]"
elif mode == ttk.TTkLog.CriticalMsg: msgType = "[CRITICAL]"
elif mode == ttk.TTkLog.FatalMsg: msgType = "[FATAL]"
elif mode == ttk.TTkLog.ErrorMsg: msgType = "[ERROR]"
print(f"{msgType} {context.file} {message}")
# Register the callback to the message handler
ttk.TTkLog.installMessageHandler(message_handler)
# Push some Debug messages
ttk.TTkLog.info( "Test Info Message")
ttk.TTkLog.debug( "Test Debug Message")
ttk.TTkLog.error( "Test Error Message")
ttk.TTkLog.warn( "Test Warning Message")
ttk.TTkLog.critical("Test Critical Message")
ttk.TTkLog.fatal( "Test Fatal Message")
Example 4 - Use TTkLogViewer widgetπΆοΈ
From example4.ttklogviewer.py (tryItOnline):
import TermTk as ttk
root = ttk.TTk()
# Create a window and attach it to the root (parent=root)
logWin = ttk.TTkWindow(parent=root,pos = (1,1), size=(80,20), title="LogViewer Window", border=True, layout=ttk.TTkVBoxLayout())
# Attach the logViewer widget to the window
ttk.TTkLogViewer(parent=logWin)
# Push some Debug messages
ttk.TTkLog.info( "Test Info Message")
ttk.TTkLog.debug( "Test Debug Message")
ttk.TTkLog.error( "Test Error Message")
ttk.TTkLog.warn( "Test Warning Message")
ttk.TTkLog.critical("Test Critical Message")
ttk.TTkLog.fatal( "Test Fatal Message")
# Start the Main loop
root.mainloop()
The above code produces the following output
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LogViewer Window β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β β
βINFO : tutorial/logging/example4.ttklogviewer.py:36 Test Info Message β
βDEBUG: tutorial/logging/example4.ttklogviewer.py:37 Test Debug Message β
βERROR: tutorial/logging/example4.ttklogviewer.py:38 Test Error Message β
βWARNING : tutorial/logging/example4.ttklogviewer.py:39 Test Warning Message β
βCRITICAL: tutorial/logging/example4.ttklogviewer.py:40 Test Critical Message β
βFATAL: tutorial/logging/example4.ttklogviewer.py:41 Test Fatal Message β
βDEBUG: _/.venv/lib/python3.8/site-packages/TermTk/TTkCore/ttk.py:70 Starting Mβ
βDEBUG: _/.venv/lib/python3.8/site-packages/TermTk/TTkCore/ttk.py:80 Signal Eveβ
βDEBUG: _/.venv/lib/python3.8/site-packages/TermTk/TTkCore/ttk.py:65 fps: 33 β
βDEBUG: _/.venv/lib/python3.8/site-packages/TermTk/TTkCore/ttk.py:65 fps: 34 β
βDEBUG: _/.venv/lib/python3.8/site-packages/TermTk/TTkCore/ttk.py:65 fps: 34 β
β β
β β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΆβ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ