Commit 1640a90a authored by mathieui's avatar mathieui

feature: add a /debug command to change logging level dynamically

And changing the path too
parent 57cd999f
......@@ -34,6 +34,12 @@ These commands work in *any* tab.
available commands. If it has a valid command as an argument, this command
will show the usage and the help for the given command.
/debug
**Usage:** ``/debug [filename]
Reset logging and enable debugging to ``[filename]``. If the filename
is empty, debug logging will be disabled.
/join
**Usage:** ``/join [room_name][@server][/nick] [password]``
......
......@@ -679,7 +679,7 @@ def post_logging_setup():
LOGGING_CONFIG = {
'version': 1,
'disable_existing_loggers': True,
'disable_existing_loggers': False,
'formatters': {
'simple': {
'format': '%(asctime)s %(levelname)s:%(module)s:%(message)s'
......
......@@ -442,4 +442,11 @@ def get_commands(commands: CommandCore, completions: CompletionCore, plugin_mana
"shortdesc": "Reload the config. You can achieve the same by "
"sending SIGUSR1 to poezio.",
},
{
"name": "debug",
"func": commands.debug,
"usage": "[debug_filename]",
"shortdesc": "Enable or disable debug logging according to the "
"presence of [debug_filename].",
},
]
......@@ -14,9 +14,7 @@ from slixmpp.xmlstream.stanzabase import StanzaBase
from slixmpp.xmlstream.handler import Callback
from slixmpp.xmlstream.matcher import StanzaPath
from poezio import common
from poezio import tabs
from poezio import multiuserchat as muc
from poezio import common, config as config_module, tabs, multiuserchat as muc
from poezio.bookmarks import Bookmark
from poezio.config import config, DEFAULT_CONFIG
from poezio.contact import Contact, Resource
......@@ -1356,6 +1354,16 @@ class CommandCore:
"""
self.core.reload_config()
@command_args_parser.raw
def debug(self, args):
"""/debug [filename]"""
if not args.strip():
config_module.setup_logging('')
self.core.information('Debug logging disabled!', 'Info')
elif args:
config_module.setup_logging(args)
self.core.information(f'Debug logging to {args} enabled!', 'Info')
def dumb_callback(*args, **kwargs):
"mock callback"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment