I'm using sentry-python
SDK for capture exceptions from my django server.
I don't want to capture django.security.DisallowedHost
like above.
How to remove sentry handling for that logger?
I attached my server configuration below.
settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'null': {
'level': 'DEBUG',
'class': 'logging.NullHandler',
},
},
'loggers': {
# Silence SuspiciousOperation.DisallowedHost exception ('Invalid
# HTTP_HOST' header messages). Set the handler to 'null' so we don't
# get those annoying emails.
'django.security.DisallowedHost': {
'handlers': ['null'],
'propagate': False,
},
}
}
sentry_sdk.init(
dsn=os.environ['SENTRY_DSN'],
integrations=[DjangoIntegration()],
send_default_pii=True,
release=f"{os.environ['STAGE']}@{os.environ['VERSION']}",
)
Logging an exception in python with an error can be done in the logging. exception() method. This function logs a message with level ERROR on this logger. The arguments are interpreted as for debug(). Exception info is added to the logging message.
By using a tool like Sentry along with our logs and metrics, we're not only able to know what's going on much faster, but we're able to put out fires faster.
The View Module Logs section in the Troubleshooting > Logs page contains links to logs for Sentry modules. In the View Module Logs section, click the link for the log you want to view.
See LoggingIntegration, eg:
from sentry_sdk.integrations.logging import ignore_logger
ignore_logger("a.spammy.logger")
logger = logging.getLogger("a.spammy.logger")
logger.error("hi") # no error sent to sentry
See before_breadcrumb and before_send, eg:
import sentry_sdk
def before_breadcrumb(crumb, hint):
if crumb.get('category', None) == 'a.spammy.Logger':
return None
return crumb
def before_send(event, hint):
if event.get('logger', None) == 'a.spammy.Logger':
return None
return event
sentry_sdk.init(before_breadcrumb=before_breadcrumb, before_send=before_send)
Under the sentry_sdk I had to use the following code in before_send to get it to ignore the django.security.DisallowedHost exception.
def before_send(event, hint):
"""Don't log django.DisallowedHost errors in Sentry."""
if 'log_record' in hint:
if hint['log_record'].name == 'django.security.DisallowedHost':
return None
return event
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With