22👍
✅
Finally found the answer, modify the configuration in the original question to have the following for ‘syslog’:
from logging.handlers import SysLogHandler
...
'syslog':{
'level':'DEBUG',
'class': 'logging.handlers.SysLogHandler',
'formatter': 'verbose',
'facility': SysLogHandler.LOG_LOCAL2,
},
...
Warning to future generations: you pretty much have to do it exactly like the above, weird errors happen if you specify the class directly etc.
Update: I’ve just moved to Amazon Linux (and Django 1.5) and used the following change to the configuration for the ‘syslog’ section in that environment, note the ‘address’ argument:
'syslog':{
'level':'DEBUG',
'class': 'logging.handlers.SysLogHandler',
'formatter': 'verbose',
'facility': 'local1',
'address': '/dev/log',
},
10👍
This works for me (on default debian).
- I suspect using an address of
/dev/log
is the secret to ensure there is no attempt to use the network. - I think using a logger label of
''
equates to the root logger so will catch most stuff
In settings.py:
LOGGING = {
'version': 1,
'handlers': {
'syslog':{
'address': '/dev/log',
'class': 'logging.handlers.SysLogHandler'
}
},
'loggers': {
'': {
'handlers': ['syslog'],
'level': 'DEBUG',
}
}
}
in the app:
import logging
logging.info("freakout info")
provides:
john:/var/log$ sudo tail -1 user.log
Dec 14 17:15:52 john freakout info
- How do you use Django-filter's '__in' lookup?
- Django reverse error: NoReverseMatch
- Sending a message to a single user using django-channels
0👍
If you’re using remote syslog, be sure to include the port in the address field, otherwise you could get [Errno 9] Bad file descriptor
The logging config would look something like this
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"verbose": {
"format": "%(asctime)s %(name)-12s %(levelname)-8s %(message)s",
},
},
"handlers": {
"console": {
"level": "INFO",
"class": "logging.StreamHandler",
"stream": sys.stdout,
"formatter": "verbose",
},
"syslog": {
"level": "INFO",
"class": "logging.handlers.SysLogHandler",
"formatter": "verbose",
"facility": "user",
"address": ["192.168.1.10", 514],
}
},
"loggers": {
"": {
"handlers": ["console", "syslog"],
"level": "INFO",
"propagate": True,
},
},
}
- Selenium – python. how to capture network traffic's response
- Django widget override template
- How to filter filter_horizontal in Django admin?
- How can I easily convert a Django app from mySQL to PostgreSQL?
- Is exposing a session's CSRF-protection token safe?
Source:stackexchange.com