- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 Sendgrid 向所有用户发送格式漂亮的电子邮件,介绍他们在我的网站上执行的特定事件(例如创建登录、添加信用卡等),并且我正在使用我创建的电子邮件服务来执行此操作使用 Sendgrid(通过我的 Azure 门户订阅)。我还使用 .Net 记录器服务,并认为我可以通过该服务获取电子邮件通知,但我在 Azure 门户中看不到任何内容。
问题 - 如果我的网站抛出如下例所示的异常怎么办?获得通知的最佳方式是什么?
这是服务器端的一个示例以及我当前所做的事情,即使用 Sendgrid 向自己发送一封电子邮件,但看起来这可能不是最好的解决方案。
try {
// perform some action and save to db
} catch(Exception ex) {
_logger.LogError(ex, "Error: " + ex.ToString());
_emailService.SendEmailError("Some Exception", ex.ToString());
}
更新 - 基于下面的 Peter Bons 帖子 - 我已经启动并运行了应用程序洞察,并且可以看到一些数据传入。然后,我创建了一个操作组(“通知”)并将其配置为传一个电子邮件给我。我收到了来自 Azure 的一些通知,说它已配置,所以一切都很好。接下来,我尝试在应用程序应用程序警报面板中创建警报,但对于需要选择哪种类型的信号进行记录感到困惑。我尝试创建 2 个不同的警报,1 个针对指标下的“异常”,1 个针对事件日志下的“所有管理操作”。一旦这两个警报起作用,我就开始收到电子邮件。 但是我开始收到大量电子邮件,而 Azure 由于速率限制而关闭了我,所以现在我有一些问题:
在哪里创建警报?我看到可以在 2 个不同的位置创建它 1.) 应用服务警报 2.) 应用服务应用程序洞察警报。应用程序见解警报部分中似乎没有触发任何事件,仅在应用程序警报部分中触发。
当我记录信息(例如_logger.LogError())时,我选择什么类型的信号将被触发,因为即使我使用详细信息创建基于任何管理事件的警报(例如警报触发器并使用大量电子邮件创建)没有触发事件,也没有用于记录器调用的电子邮件!
最佳答案
使用 this tutorial 将 Azure Application Insights 添加到组合中作为起点并使用 alerts功能。
一旦正确完成,类似这样的代码 _logger.LogError(ex, "Error: "+ ex.ToString());
将在 Application Insights 中生成异常遥测项目,如文档 here 所示。 :
ApplicationInsightsLoggerProvider captures ILogger logs and creates TraceTelemetry from them. If an Exception object is passed to the Log method on ILogger, ExceptionTelemetry is created instead of TraceTelemetry.
到达那里后,您可以创建 alert rule基于标准,就像发生了异常一样。一条警报规则有一个或多个 action groups随附的。这些操作组定义触发警报规则后要采取的操作。一个示例操作是发送电子邮件。
使用警报规则和操作规则的好处在于,触发警报的方式以及发生警报时发生的操作是触发警报规则的代码,例如 _logger.LogError (例如,“Error:” + ex.ToString())
,与接下来发生的任何事情分离。如果您需要更改电子邮件地址,想要包含不同的操作(例如发送短信或触发网络钩子(Hook)),您无需修改任何代码即可执行此操作。
完整的教程可以在 here 找到
现在关于您的另外两个问题:
Where do I create the alert? I see 2 separate places where it can be created 1.) app service alerts 2.) app service application insight alerts. No events seem to be fired in the application insights alert section, only in the app alert section.
您可以从很多地方开始定义警报。您甚至可以从 Azure Monitor 资源创建一个。如果您这样做,则需要深入了解作为警报规则来源的资源。
选择应用服务应用程序洞察提醒时,您已经深入到正确的资源,因此这是最佳的起点。
What type of signal do I select that will get triggered when I log information (ex. _logger.LogError()), because even when I create an alert that is based on any admin event using verbose (so tons of alert triggers and created with tons of emails) There is no event fired and email for the logger calls!
首先,不要使用Activity Log
部分的任何信号。这些信号表明资源本身发生了某些更改,例如更新了 Application Insights 设置或扩展了 Web 应用程序。
要为 _logger.LogXXX() 生成的日志创建警报规则,请使用自定义日志搜索
信号,请参阅 your other question .
关于azure - 当 Azure 应用程序服务(网站)抛出异常时,通过电子邮件通知我的管理员的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75827463/
来自 java docs 公共(public) FileWriter(String fileName) 抛出 IOException 抛出: IOException - 如果指定的文件存在但它是目录而
我使用以下代码将我的 .net 客户端(基于 CQL)连接到 3 节点 Cassandra 集群。我以 30 条记录/秒的速度(从 RabbitMQ)获取数据,并且它们顺利地存储在 cassandra
如果在读取文件时缺少字段,我应该捕获 NoSuchElementException。如果缺少一个字段,我只需要跳到文件的下一行。我的问题是,我在哪里实现我的 try/catch 代码来做到这一点?这是
我正在尝试使用 ASP.NET MVC 实现 OpeinID 登录。我正在尝试按照 http://blog.nerdbank.net/2008/04/add-openid-login-support-
学习使用 Java 进行 xml 解析,并且正在编写一个测试程序来尝试各种东西。所有测试 System.out.println() 都是我在控制台中所期望的,除了 childElement 返回 [n
我正在尝试使用 SwingUtilities 创建 JFrame Thread tt = new Thread(new Runnable() { public void run
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我写了这段代码: MethodInfo method2 = typeof(IntPtr).GetMethod( "op_Explicit", Bind
我开始学习 Java,并且正在根据书本做一些练习。在执行此操作时,我遇到了以下错误:线程“main”java.util.InputMismatchException 中出现异常。我正在编写一个简单的程
我有一个文本文件,其中前两行是整数 m 和 n,然后有 m 行,每行都有 n 管道分隔值。我编写了一个程序,读取文件并使用文件中的值创建 m*n 数组,它工作了无数次,然后突然,使用相同的代码,使用相
所以我尝试使用在另一个类中生成的 bean 以在主应用程序中使用 package com.simon.spring.basics.properties; import org.spri
我还没有完成这个应用程序,但我希望在我的手机上看到它的样子。但是,它会强制关闭并引发 InstantiationException。 logcat 异常: 09-19 20:13:47.987: D/
我想从 UIViewController 加载一个基于 SwiftUI 的 View ,该 View 读取包本地的 json。仅 swiftUI 项目中的代码和绑定(bind)工作正常,当我利用 UI
'java.net.SocketTimeoutException:连接超时' 循环一段时间后我收到此错误。为什么我会收到 SocketTimeoutException?我该如何修复这个错误? @Ove
当有 null 值时抛出 ArgumentNullException() 是个好主意吗? This thread 没有提到在 null 上抛出的最明显的异常。 谢谢 最佳答案 ArgumentNull
我得到这个异常: NullReferenceException Object reference not set to an instance of an object at Namespace
所以其中一个方法的描述如下: public BasicLinkedList addToFront(T data) This operation is invalid for a sorted list
我正在使用 Intellij Idea,当我去生成 JavaDocs(通过工具 -> 生成 JavaDoc)时,我抛出了一个 IllegealArgumentException,没有关于发生了什么问题
我正在学习 C++ 中的互斥锁,但以下代码(摘自 N. Josuttis 的“C++ 标准库”)有问题。 我不明白为什么它会阻塞/抛出除非我在主线程中添加this_thread::sleep_for(
我正在试验 JavaFX 标签和组,通过鼠标拖动将它们移动到屏幕上。新节点从一些线程添加到动画组。但是,有时我会突然看到以下异常 - 我假设,当某些节点重叠时。但是不知道是什么问题……因为不涉及我的代
我是一名优秀的程序员,十分优秀!