Open GoogleCodeExporter opened 9 years ago
See info on this wiki page how to enable file logging and debugging within
WebIOPi:
https://code.google.com/p/webiopi/wiki/INSTALL?tm=6
Just use the -l and -d options in interactive mode.
You can also set this for the webiopi daemon, just modify the coresponding
command that starts webiopi as daemon. However, when run as daemon webiopi
already logs to a file being /var/log/webiopi by default.
You find the details in webiopi.init.sh, but this is just the template, do not
modify anything here unless you call setup.sh again (and know what you do ...).
Andreas
Original comment by andreas....@googlemail.com
on 22 Sep 2014 at 7:47
Hi Andreas,
I would like to apologize for my not clear issue description.
The problem I have rised is not linked to WEBIOPI logging features, that I have
tested and it works OK.
The problem I faced is in my app in Python and influance (I guess) of WEBIOPI
on standard Python logging module.
I would like to use your module for some home automation features. I want to
use module "logging", which is included in Python to save in my app's log file
history of running it.
The problem is, that after invoking WEBIOPI module in Python (using "import
webiopi") all ma log request (i.e."logging.debug('XXXXXXX')) are not saved in
log file but displayed in terminal window.
If I will try to run the same Python code without "import webiopi" everything
is working fine. All log requests are saved in my log file.
The problem appears right after "import webiopi", before using WEBIOPI
functions, classes etc. Just importing breaking logging feature :(
# the line below: works OK
import logging
# the line below: works OK
logging.basicConfig(filename='example.log',level=logging.DEBUG)
# the line below: works OK
logging.debug('This message should go to the log file')
# the line below: works OK - but from the moment "logging" is not working
properly.
import webiopi
# the line below: does no works. The text shoul be saved in log file but is
not. Is displayed in terminal window.
logging.info('This message should also go to the log file, but is displayed in
Terminall window after importing webiopi')
br,
maciej
Original comment by maciej2...@gmail.com
on 22 Sep 2014 at 7:42
Yes, this is right and works as designed so far ... at least in the current
release and how Eric implemented it.
If you import webiopi, you also import webiopi logging (see
webiopi/utils/logger.py) and this grabs and configures the root logger. Your
basic logger configuration will just be overwritten, as you discovered, after
the import statement.
BUT, if you look at the code, WebIOPi looks to be able to log simultaneous to
console AND log file (if you configure the log file using the -l parameter).
You may be able to create your own logger (logging.getLogger('mylogger') so
that you can get different log entries (in the SAME log file) that can be
distinguished by their different names. You may be also able to set different
log levels for your logger, but I'm not sure if this works as WebIOPi sets
currently direct the log level for the root logger, but you may try it. You may
also be able to set a different file handler to your specific logger, but it is
not recommended to do so according to the Python documentation.
See here (https://docs.python.org/2/howto/logging-cookbook.html) for very
helpful tips and code examples on Python logging.
Andreas
Original comment by andreas....@googlemail.com
on 23 Sep 2014 at 7:05
Original issue reported on code.google.com by
maciej2...@gmail.com
on 21 Sep 2014 at 12:59