(Add an example of doing it in pure Python.) |
|||
Line 12: | Line 12: | ||
To have your app logs shipped to our central logging server, you can configure | To have your app logs shipped to our central logging server, you can configure | ||
− | the SysLogHandler like | + | the SysLogHandler to do so. |
+ | |||
+ | For TurboGears-style config-file based logging setups, you can do something like the following: | ||
<pre>[logging] | <pre>[logging] | ||
Line 30: | Line 32: | ||
handlers=['syslog_out'] | handlers=['syslog_out'] | ||
propagate=0 | propagate=0 | ||
+ | </pre> | ||
+ | |||
+ | Here is an example of doing it in pure Python: | ||
+ | |||
+ | <pre> | ||
+ | import logging | ||
+ | import logging.handlers | ||
+ | |||
+ | syslogger = logging.getLogger('bodhi') | ||
+ | syslogger.setLevel(logging.WARN) | ||
+ | handler = logging.handlers.SysLogHandler(address='/dev/log', facility=logging.handlers.SysLogHandler.LOG_LOCAL4) | ||
+ | sysloggerr.addHandler(handler) | ||
</pre> | </pre> | ||
Revision as of 20:23, 19 January 2013
Best Practices for Fedora Infrastructure Apps
Coding style
- Python code should be PEP8 compliant
Centralized logging
Most of our apps use the standard Python logging module, which usually ends up logging to /var/log/httpd/error_log on the local machine.
To have your app logs shipped to our central logging server, you can configure the SysLogHandler to do so.
For TurboGears-style config-file based logging setups, you can do something like the following:
[logging] [[handlers]] [[[syslog_out]]] class='handlers.SysLogHandler' args="('/dev/log', handlers.SysLogHandler.LOG_LOCAL4,)" formatter='message_only' [[loggers]] [[[bodhi]]] level='DEBUG' qualname='bodhi' handlers=['syslog_out'] propagate=0
Here is an example of doing it in pure Python:
import logging import logging.handlers syslogger = logging.getLogger('bodhi') syslogger.setLevel(logging.WARN) handler = logging.handlers.SysLogHandler(address='/dev/log', facility=logging.handlers.SysLogHandler.LOG_LOCAL4) sysloggerr.addHandler(handler)
The app logs will then appear in /var/log/hosts/<HOST>/<YEAR>/<MONTH>/<DAY>/apps.log as well as the merged log /var/log/merged/apps.log.