diff --git a/bin/netsvc.py b/bin/netsvc.py index 6894ea7d1da..b60546ce054 100644 --- a/bin/netsvc.py +++ b/bin/netsvc.py @@ -193,6 +193,12 @@ class Logger(object): # better ignore the exception and carry on.. pass + def set_loglevel(self, level): + log = logging.getLogger() + log.setLevel(logging.INFO) # make sure next msg is printed + log.info("Log level changed to %s" % logging.getLevelName(level)) + log.setLevel(level) + def shutdown(self): logging.shutdown() diff --git a/bin/service/web_services.py b/bin/service/web_services.py index 46a66594162..6bb6989ef8e 100644 --- a/bin/service/web_services.py +++ b/bin/service/web_services.py @@ -375,6 +375,7 @@ class common(netsvc.Service): self.exportMethod(self.get_migration_scripts) self.exportMethod(self.get_server_environment) self.exportMethod(self.login_message) + self.exportMethod(self.set_loglevel) def ir_set(self, db, uid, password, keys, args, name, value, replace=True, isobject=False): security.check(db, uid, password) @@ -561,6 +562,12 @@ GNU Public Licence. def login_message(self): return tools.config.get('login_message', False) + def set_loglevel(self, password, loglevel): + security.check_super(password) + l = netsvc.Logger() + l.set_loglevel(int(loglevel)) + return True + common() class objects_proxy(netsvc.Service): diff --git a/change-loglevel.sh b/change-loglevel.sh new file mode 100755 index 00000000000..cb325435a1a --- /dev/null +++ b/change-loglevel.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +ADMIN_PASSWD='admin' +method_1() { + cat '-' << EOF + + + set_loglevel + + $ADMIN_PASSWD + + + $1 + + + +EOF +} +LEVEL=10 + +if [ -n "$1" ] ; then LEVEL=$1 ; fi + +method_1 $LEVEL | POST -c 'text/xml' http://localhost:8069/xmlrpc/common +#eof