我正在使用django-sentry来记录错误.我还想在发生错误时启用限制错误邮件发送给管理员.但我无法让它发挥作用.
a)正常的django错误邮件正在运行.b)但是在删除ADMINS并添加SENTRY_ADMINS(如下所示)时它会停止工作:
DEBUG = False
TEMPLATE_DEBUG = DEBUG
SENTRY_TESTING = True
ADMINS = ()
SENTRY_ADMINS = ('my.name@domain.com',)
MANAGERS = ADMINS
MIDDLEWARE_CLASSES = (
'sentry.client.middleware.SentryResponseErrorIdMiddleware',
....
)
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'name@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
Run Code Online (Sandbox Code Playgroud)
虽然条目正确制作并在面板中显示.我在测试之前将所有错误标记为已解决(以满足哨兵的节流条件),但它仍然无效.
谁能指出我在这里做错了什么?
django-sentry在Django环境中是否有任何轻量级替代方法用于错误记录?
我django-db-log之前用的是现在所知的django-sentry.我找到的其他一些人几乎已经死了,因为他们在过去两年几乎没有任何承诺.
谢谢.
现在它django-sentry已经成为一个独立的服务器(并且很棒)我正在尝试移植我的应用程序以使用它.
我已经设置了一个独立的服务器,配置了一个django应用程序,根据乌鸦文档使用django 1.3的日志字典conf进行记录.我似乎无法获得任何芹菜任务登录到哨兵服务器(虽然他们确实打印到控制台).
我不确定我应该做什么?我已经加入raven.contrib.django.celery了我的`INSTALLED_APPS'.
正在通过以下方式将未捕获的异常发送到哨兵:自定义日志消息:
import logging
logger = logging.getLogger(__name__)
...
logger.info("Logged Message")
Run Code Online (Sandbox Code Playgroud) 如何使用sentry raven-java客户端设置用户上下文?
我已经尝试添加user_email标签,并添加user_email到MDC.它们都按预期工作,标签转到标签,MDC转到其他数据,但都没有设置哨兵用户上下文.
我也使用javascript的哨兵,使用raven-js,这很好用:
Raven.setUserContext({
email: '',
id: ''
});
Run Code Online (Sandbox Code Playgroud)
是否有Java等价物?
如何配置Django logging以支持不同的DSN loggers?
像这样的东西:
settings.py
LOGGING = {
..
'handlers': {
'sentry1': {
'level': 'ERROR',
'class': 'raven.contrib.django.handlers.SentryHandler',
'dsn': '<DSN1>',
},
'sentry2': {
'level': 'ERROR',
'class': 'raven.contrib.django.handlers.SentryHandler',
'dsn': '<DSN2>',
},
},
'loggers': {
'sentry1':{
'handlers': ['console', 'sentry1'],
'level': 'ERROR',
'propagate': False,
},
'sentry2':{
'handlers': ['console', 'sentry2'],
'level': 'ERROR',
'propagate': False,
},
}
Run Code Online (Sandbox Code Playgroud)
views.py
import logging
logger = logging.getLogger('sentry2')
logger.error('yeey!')
Run Code Online (Sandbox Code Playgroud) 我可能在火车上有点迟了,但我想用Sentry和Raven登录Django.
我设立了哨兵和乌鸦,在那里我为乌鸦进行了测试并且它有效.
所以现在我想将调试信息发送到哨兵,但我该怎么做呢?
settings.py
RAVEN_CONFIG = {
'dsn': 'http://code4@mydomain:9000/2',
# If you are using git, you can also automatically configure the
# release based on the git info.
'release': raven.fetch_git_sha(BASE_DIR),
}
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
},
'handlers': {
'sentry': {
'level': 'WARNING',
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
},
'console': {
'level': 'WARNING',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
}
},
'loggers': {
'django': {
'handlers': ['sentry'],
'level': 'DEBUG',
'propagate': True, …Run Code Online (Sandbox Code Playgroud) 虽然我的 DSN 在一个 .env 文件中并且对 repo 浏览器隐藏,但我发现我的身份验证令牌在 sentry.properties 文件中让所有人都能看到令人不安。
我无法理解这意味着什么,以及让我组织以外的人阅读此文件会带来多大的安全风险?
(我已经外包了开发人员在 repo 上为我做零工)
文档对我没有多大帮助.我试过的地点:
gradle.properties和project的build.gradle文件所在的位置)/app文件夹(应用程序的build.gradle文件已定位)/app/src/main/kotlin我在类的扩展中初始化Sentry,android.app.Application类似于:
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
Sentry.init(AndroidSentryClientFactory(applicationContext))
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的一个方法中进行测试捕获:
Sentry.capture("This is a test capture using Sentry")
Run Code Online (Sandbox Code Playgroud)
我还尝试明确指定sentry.properties文件的路径gradle.properties,没有运气.
当我使用Sentry.init()接受DSN的方法时,它可以工作,但这不是必需的,因为我不想将DSN检入VCS.
我知道其他配置方法,我只是想使用sentry.properties.
我正在使用 Sentry 通过 Netlify 的插件捕获生产中的任何错误以上传source maps.
我收到消息:
匹配您的配置时出错。请配置堆栈跟踪链接以解决此问题。
我应该在“堆栈跟踪根”和“源代码根”中填写什么?
如何在Sentry中发送特定信息?文档中有事件,但如何正确使用它们以及到底在哪里使用它们(例如:发送带有错误的用户电子邮件)?
Sentry 提供了这个源代码,但是我到底要在哪里使用它呢?:
Sentry.configureScope(
(scope) => scope.user = SentryUser(id: '1234', email: 'jane.doe@example.com'),
);
Run Code Online (Sandbox Code Playgroud)
以及如何在调试模式下停止发送报告?