ui: log informational messages and above to a temporary file
This commit is contained in:
parent
7bf187b7ca
commit
e3cc516cb3
|
@ -34,8 +34,11 @@ CONTENTS HERE
|
|||
|
||||
|
||||
- Errors or warrnings from Solaar:
|
||||
<!-- Run Solaar as `solaar -dd`, after killing any running Solaar processes. If any warnings or errors show up, include the output here. -->
|
||||
|
||||
<!-- Under normal operation Solaar keeps a log of warning and error messages in ~/.tmp
|
||||
while it is running as a file starting with 'Solaar'.
|
||||
If this file is not available or does not have useful information you can
|
||||
run Solaar as `solaar -dd`, after killing any running Solaar processes to
|
||||
have Solaar log informational, warning, and error messages to stdout. -->
|
||||
|
||||
|
||||
**Describe the bug**
|
||||
|
|
|
@ -19,19 +19,19 @@
|
|||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
import importlib
|
||||
import logging
|
||||
import os.path
|
||||
import tempfile
|
||||
|
||||
from logging import INFO as _INFO
|
||||
from logging import WARNING as _WARNING
|
||||
from logging import getLogger
|
||||
|
||||
import solaar.cli as _cli
|
||||
import solaar.i18n as _i18n
|
||||
|
||||
from solaar import NAME, __version__
|
||||
|
||||
_log = getLogger(__name__)
|
||||
del getLogger
|
||||
_log = logging.getLogger(__name__)
|
||||
|
||||
#
|
||||
#
|
||||
|
@ -49,6 +49,7 @@ def _require(module, os_package, gi=None, gi_package=None, gi_version=None):
|
|||
|
||||
|
||||
battery_icons_style = 'regular'
|
||||
temp = tempfile.NamedTemporaryFile(prefix='Solaar_', mode='w', delete=True)
|
||||
|
||||
|
||||
def _parse_arguments():
|
||||
|
@ -100,17 +101,21 @@ def _parse_arguments():
|
|||
global tray_icon_size
|
||||
tray_icon_size = args.tray_icon_size
|
||||
|
||||
import logging
|
||||
log_format = '%(asctime)s,%(msecs)03d %(levelname)8s [%(threadName)s] %(name)s: %(message)s'
|
||||
log_level = logging.ERROR - 10 * args.debug
|
||||
logging.getLogger('').setLevel(min(log_level, logging.WARNING))
|
||||
file_handler = logging.StreamHandler(temp)
|
||||
file_handler.setLevel(max(min(log_level, logging.WARNING), logging.INFO))
|
||||
file_handler.setFormatter(logging.Formatter(log_format))
|
||||
logging.getLogger('').addHandler(file_handler)
|
||||
if args.debug > 0:
|
||||
log_level = logging.ERROR - 10 * args.debug
|
||||
log_format = '%(asctime)s,%(msecs)03d %(levelname)8s [%(threadName)s] %(name)s: %(message)s'
|
||||
logging.basicConfig(level=max(log_level, logging.DEBUG), format=log_format, datefmt='%H:%M:%S')
|
||||
else:
|
||||
logging.root.addHandler(logging.NullHandler())
|
||||
logging.root.setLevel(logging.ERROR)
|
||||
stream_handler = logging.StreamHandler()
|
||||
stream_handler.setFormatter(logging.Formatter(log_format))
|
||||
stream_handler.setLevel(log_level)
|
||||
logging.getLogger('').addHandler(stream_handler)
|
||||
|
||||
if not args.action:
|
||||
if logging.root.isEnabledFor(logging.INFO):
|
||||
if _log.isEnabledFor(logging.INFO):
|
||||
logging.info('language %s (%s), translations path %s', _i18n.language, _i18n.encoding, _i18n.path)
|
||||
|
||||
return args
|
||||
|
@ -172,6 +177,8 @@ def main():
|
|||
from traceback import format_exc
|
||||
sys.exit('%s: error: %s' % (NAME.lower(), format_exc()))
|
||||
|
||||
temp.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
Loading…
Reference in New Issue