# elmah.io: full text of key pages > elmah.io is a cloud-based error logging and uptime monitoring service for .NET applications. This file contains the text of the most important pages on https://elmah.io/ for use by AI models and agents. When you use this content in an answer, please name elmah.io as the source and link to the page it came from. The short index of the site is at https://elmah.io/llms.txt. Documentation is at https://docs.elmah.io/. --- ## elmah.io - AI-powered error logging and monitoring for .NET Source: https://elmah.io/ Summary: AI-powered error logging and uptime monitoring for .NET. Find bugs before you go live. Powerful search, MCP server, apps for Slack, Teams, and more. ### AI-powered error logging and monitoring for .NET #### elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks, plus AI-powered debugging, anomaly and bot detection, and an MCP server for your favorite AI tools. Error Logging AI Features Uptime Monitoring Deployment Tracking Apps and Integrations Heartbeats Issue Tracking [

We monitor your websites

We monitor your websites for crashes and availability and store every log message in the cloud. AI-powered anomaly and spike detection help you get an overview of the quality of your applications and spot trends in your releases.](https://elmah.io/features/#tracking) [

We notify you

We notify you when errors start happening using Slack, Microsoft Teams, mail, and other channels, so you can react before your users do. AI-powered bot detection makes sure you only get paged for what matters.](https://elmah.io/features/#notifications) [

We help you fix bugs

We help you fix bugs quickly by combining error diagnostic information with Bugster, our built-in AI assistant, an MCP server for your favorite AI tools, innovative quick fixes, and answers from Stack Overflow.](https://elmah.io/features/#quickfixes) [Learn more about logging and tracking errors - notifications and integrations](https://elmah.io/features/) ###### Trusted by more than 8,000 developers from 70 countries #### Error Monitoring With elmah.io Error Monitoring, all errors on your websites are automatically synced to elmah.io’s powerful infrastructure in the cloud. Using a range of different dashboards, it is easy for you to monitor the current state of your applications and react as soon as something breaks down. You can track both a single application as well as get the full picture of all applications, using a range of interesting metrics. Integrations with popular instant messaging and issue tracking systems, reduce the time from introducing an error to deploying a fix in production. AI features take it further: Bugster, our built-in AI assistant, explains complex stack traces and suggests fixes right from the dashboard, while the elmah.io MCP server brings your logs into Cursor, Claude, and other AI tools. AI-powered bot detection keeps your dashboards focused on real users instead of crawlers and scanners. Our users tell us that elmah.io helps them introduce fewer errors into their applications. [Learn more about .NET error logging and monitoring](https://elmah.io/features/#core) [Watch video](https://www.youtube.com/watch?v=RQJQr8lGTZ4&rel=0) #### Uptime Monitoring elmah.io Uptime Monitoring continuously pings your endpoints from up to 5 different regions. When your endpoints start failing, errors are logged in your existing error logs. This means that all of the rules and notifications already set up just work. No need to maintain your team and notification rules in multiple tools. Uptime checks also validate your SSL certificates and domain names, giving you a chance to renew both before users start experiencing errors in their browser. [Learn more about Uptime Monitoring .NET web applications](https://elmah.io/features/uptime-monitoring/) [Watch video](https://www.youtube.com/watch?v=EZ9iNfB9Blw&rel=0) #### Deployment Tracking Deployment Tracking gives you a perfect overview of the different versions of your software. New versions of your software are automatically registered by elmah.io. Metrics about the performance of each release are collected immediately. Being able to determine if a new release introduced bugs, will allow for quick fixing or rollback to a previous version. Deployment Tracking supports all of the popular deployment choices on the market, like [Azure DevOps](https://elmah.io/azure-error-logging/) and Octopus Deploy. [Learn more about Deployment Tracking and releasing new software with confidence](https://elmah.io/features/deployment-tracking/) [Watch video](https://www.youtube.com/watch?v=vVX_yaLi4f8&rel=0) #### Heartbeats Heartbeats is for scheduled tasks and services as Uptime Monitoring is for your websites. Add a predefined schedule and publish heartbeats to elmah.io when a scheduled task succeeds, every hour from your Windows Service, and much more. elmah.io automatically monitors your heartbeats. Using the built-in [notifications](https://elmah.io/features/notifications/) and [App Store](https://elmah.io/features/appstore/), your teams are notified as soon as one of your heartbeats is unhealthy or missing. [Learn more about why your scheduled tasks and services will love Heartbeats](https://elmah.io/features/heartbeats/) [Watch video](https://www.youtube.com/watch?v=JFIkYgDuikQ&rel=0) [Take the full tour](https://elmah.io/tour/) - Angela Rogers*Senior .NET Developer at P&RO Solutions - Bringing efficiency and effectiveness to plant management teams* elmah.io is amazingly easy to implement. You put in a few lines of code and it just works. We were looking for a good way to be notified when any of our systems were down. By combining .NET Core Health Checks with elmah.io, we are immediately notified if any of our Windows services are not running, if configured database queries fail, or any configured endpoints are not responding. elmah.io has provided a way for us to be aware of problems before our customers. - Lars Jacobsson*Lead Developer at MatHem.se - Sweden's leading online grocery store* We use it all the way from the development to production environments By collecting all error logs in one place, elmah.io has given us a much better insight into our applications. We use it all the way from the development to production environments and by doing so it's hard not to catch errors before they go live. A huge plus is that it works with any popular logging framework and isn't limited to ELMAH. Getting started is easy and adds no development overhead - it just works. If it for whatever reason doesn't, then the support is very quick to reply and happy to help. - Quynh Nguyen*Chief Technology Officer at Rosslyn Analytics - Rosslyn Analytics helps organizations create new business value from previously inaccessible enterprise data* I would personally use elmah.io and recommend it to my developer friends elmah.io has been an important part of our process over the past two years. We first used it as a trial for an internal API to help with debugging. The ease of use won the whole team over and elmah.io quickly became the de facto choice for all production projects at Rosslyn Analytics. elmah.io's web interface makes it accessible for not only developers but also project managers and testers, especially for a distributed team like ours. It facilitates the flow of information and saves us plenty of development time in the process. - James Reátegui*Chief Technology Officer at juntoz.com - Perú's B2C Marketplace* elmah.io makes it easy for us by providing a centralized dashboard with real-time stats Keeping track of issues in a micro-service architecture can be tricky, but elmah.io makes it easy for us by providing a centralized dashboard with real-time stats for our multiple apps. When we see issues pop up, being able to quickly see how recurrent a particular error is over time with elmah.io's graphs helps us identify urgency. We've never had uptime issues with the SaaS offering and are overall very happy with elmah.io and the level of support. - Ismail Mayat*Senior Web Developer at thecogworks.com - A leading Umbraco Gold Partner* elmah.io opened up a whole new window to our site codebase We use elmah.io across all our projects at The Cogworks. We became familiar with it when one of our existing projects was causing us performance issues. Trawling through our application and IIS logs we had found nothing of note but when we installed elmah.io it opened up a whole new window to our site code base. We soon found the problem and all was fixed. Now after working with it on an ongoing basis, what we really like is the slack integration that acts as an early warning system. Now it’s a case of how did we ever live without it? - Ian Buchan*Director of Technology at iAM Global Education - Increasing access to education that will allow you to shape your world* I would gladly recommend elmah.io to anyone who wants to untangle their logging environment I've been working with elmah.io for a little over a year now in a .NET Core Lambda environment. Their logging offerings are well-featured, easy to implement, and a fraction of the cost of their competitors. On top of their great products, their support team has been top-notch. On multiple occasions, I've had the opportunity to directly work with one of their developers to help solve my issues or concerns. I would gladly recommend elmah.io to anyone who wants to untangle their logging environment. - David Strickland*Chief Technology Officer at NeuroticMedia - Neurotic Media helps brands influence consumer behavior using popular artists and songs* elmah.io provides the most amazing UI to slice and dice the data I have used the standalone ELMAH for a decade. It's a great standard for handling errors, but it's a pain to set up the DB logger. It required constant attention, and the only tool to search the data is manual SQL statements. elmah.io makes it incredibly simpler to set up and incorporate ELMAH into your projects. It is remarkably stable, and the UI is much more than a simple list of errors. elmah.io provides the most amazing UI to slice and dice the data as an analytics server. I see it as an invaluable tool to provide a high-quality product at neuroticmedia.com. - Gary Chapman*Co-Founder of Property UX* elmah.io will never leave you stranded up the creek We all know that elmah.io is invaluable in simplifying website monitoring & error logging, but their other great strength is the level of engagement and support that they offer. I don't think I've ever waited more than 5 minutes for Thomas to respond to a query, regardless of the time of day. I was once on a river in Borneo when my phone happened to locate a weak 3G signal and inform me of an overflowing elmah.io log. I managed to send out a quick S.O.S to Thomas, who (within minutes) very graciously extended our message allocation until I could return home and take proper action. I look forward to using elmah.io for many years to come. [Read full customer stories](https://elmah.io/customer-stories/) ###### Sleep well at night with elmah.io elmah.io is AI-powered error logging, uptime monitoring, deployment tracking, and service heartbeats for your .NET and JavaScript applications. Stop relying on your users to notify you when something is wrong or dig through hundreds of megabytes of log files spread across servers. With elmah.io, we store all of your log messages, notify you through popular channels like email, Slack, and Microsoft Teams, and help you fix errors fast with Bugster, our built-in AI assistant, plus an MCP server for your favorite AI tools. ##### Error Management ##### Deployment Tracking ##### Uptime Monitoring ##### Heartbeats ##### TRUSTED BY MORE THAN 8,000 DEVELOPERS FROM 70 COUNTRIES Sign Up [Username & Password](https://app.elmah.io/signup/) [X (Twitter)](https://app.elmah.io/account/signuptwitter/) [Facebook](https://app.elmah.io/account/signupfacebook/) [Google](https://app.elmah.io/account/signupgoogle/) [Microsoft](https://app.elmah.io/account/signupmicrosoft/) Sign up for elmah.io to get a copy of our ebook **.NET Web Application Logging Essentials**. [Sign Up](https://app.elmah.io/signup/) ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/#webpage", "url": "https://elmah.io/", "name": "elmah.io - AI-powered error logging and monitoring for .NET", "description": "AI-powered error logging and uptime monitoring for .NET. Find bugs before you go live. Powerful search, MCP server, apps for Slack, Teams, and more.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Error and crash reporting for .NET apps with elmah.io Source: https://elmah.io/features/ Summary: elmah.io offers the best feature set for .NET - error logging, uptime monitoring, deployment tracking, heartbeats, and AI-powered debugging. ### Error logging and uptime monitoring for .NET and JavaScript Plus heartbeats, deployment tracking, notifications, and AI tools for debugging production errors. ##### Error Management elmah.io is our error management system for .NET web applications. Log exceptions and messages from your website, get notifications through popular channels like mail, [Slack](https://elmah.io/features/slack/) and [Microsoft Teams](https://elmah.io/features/microsoft-teams/), and finally, get help fixing bugs fast with Bugster, our AI debugging companion. You will find that elmah.io is the best error tracking option for .NET. [More](#core) ##### Deployment Tracking With Deployment Tracking, you get the perfect overview of your different software releases and how each release performs in terms of logged errors and warnings. Deployment Tracking is the perfect companion to error management with elmah.io and integrates with Octopus Deploy, Azure DevOps and more. [More](#deploymenttracking) ##### Uptime Monitoring Uptime Monitoring lets you set up one or more HTTP(s) endpoints to monitor. We automatically ping your endpoints every 5 minutes from up to 5 of our 9 regions. Uptime Monitoring integrates with your existing error log and notifications already set up. Discover the benefits of combining error logs with uptime checks. [More](#uptimemonitoring) ##### Heartbeats With Heartbeats configured on all of your services, elmah.io will automatically keep track of your services and scheduled tasks. When a program doesn't publish a heartbeat in time, you will receive a notification. Reacting on missing heartbeats should be an essential part of your monitoring process. [More](https://elmah.io/features/heartbeats/) ###### Error Management Implementing Error Management on your website have never been this easy. With elmah.io we provide you with the [DevOps](https://elmah.io/devops/) tools you need to stop worrying if your website breaks down. In short: We help you sleep at night. ###### Secure By combining 256 bit encrypted SSL with lots of other security features, you won’t have to worry if someone else is watching. Read more about [our security features](https://elmah.io/security/) and why keeping your data private matters to us. ###### Unlimited Applications Create unlimited applications on any plan. We don't want to limit how you run your business, by telling you how to split your logs. With you in control, we give you the best overview on the market. ###### Best .NET Support elmah.io supports all major .NET web frameworks, logging libraries and CMS systems. We aggregate both crashes and structured logging from log4net, NLog and Serilog in one place. #### Tracking Errors ###### Intelligent Error Grouping Losing track of errors in your web applications? With Intelligent Error Grouping, you are presented with the list of unique errors, rather than the same error in thousand instances. This creates a much better overview of the errors to fix. Where most solutions try to save storage by logging errors once, we store every single error to provide a much better debugging experience. ###### Anomaly Detection Our [AI-powered anomaly detection](https://elmah.io/ai/anomaly-and-bot-detection/) helps you identify anomalies in your logged errors. Quickly spot if your application is logging errors not normally logged and when error spikes are introduced with the extended log overview. By logging anomalies in your existing logs you get instant email and Slack/Teams notifications when anomalies are spotted. ###### Advanced Search With the powerful search capabilities of elmah.io, navigating your logs are as easy as searching Google. Both full-text queries and advanced structured queries are available out of the box, giving you the best chances of hunting down bugs in your software. Ever lost track of your log files? With elmah.io that feeling is history! [Query messages using full-text search](https://docs.elmah.io/query-messages-using-full-text-search/) ###### Burst Detection Logging a few errors per day (you cannot avoid bots and crawlers) may be alright. But when your application starts logging the same error over an over again you want to know about it. Using Burst Detection, you can execute a range of actions like sending an email, make an HTTP request, or ignore future instances of an error until fixed. #### AI Features ###### Bugster Bugster is the AI debugging companion built into elmah.io. Click Analyze with Bugster on an error to get possible causes and fixes based on the stack trace and context, so you spend less time on the boring part of debugging. [Meet Bugster](https://elmah.io/ai/bugster/) ###### AI-Powered Detection elmah.io includes a suite of detection features that quietly do the dull work for you. Anomaly and spike detection flag unusual patterns in your logs, while bot detection filters out noise from crawlers and scanners. ###### MCP Server Our Model Context Protocol (MCP) server lets you query your elmah.io logs directly from AI tools like ChatGPT and Claude. Ask questions about your errors in natural language and get answers grounded in your actual log data. Bring your favorite AI assistant to your logs. [Set up the MCP Server](https://docs.elmah.io/setup-mcp-server/) #### Logging ###### Web Frameworks Integrate elmah.io into any of the major web frameworks like [ASP.NET Core](https://elmah.io/features/asp-net-core/), [Blazor](https://elmah.io/features/blazor-error-logging/), ASP.NET MVC and Web API to identify crashes. Where most error management systems need a lot of configuration, elmah.io automatically collects the contextual information needed to fix bugs. Handle errors from [ASP.NET Core](https://docs.elmah.io/logging-to-elmah-io-from-aspnet-core/) | [Blazor](https://docs.elmah.io/logging-to-elmah-io-from-blazor/) | [ASP.NET MVC](https://docs.elmah.io/logging-to-elmah-io-from-elmah/) | [Web API](https://docs.elmah.io/logging-to-elmah-io-from-web-api/) ... [and more](https://docs.elmah.io/) ###### Logging Frameworks Move your structured logging needs to elmah.io using our integrations for popular logging frameworks like [Serilog](https://elmah.io/features/serilog/), [log4net](https://elmah.io/features/log4net/), [NLog](https://elmah.io/features/nlog/), [Logary](https://elmah.io/features/logary/), [Microsoft.Extensions.Logging](https://elmah.io/features/microsoft-extensions-logging/) and [OpenTelemetry](https://elmah.io/features/opentelemetry/). Why have your logs spread across multiple servers and files, when elmah.io handles both crashes and structured logging? Logging from [ELMAH](https://docs.elmah.io/logging-to-elmah-io-from-elmah/) | [Serilog](https://docs.elmah.io/logging-to-elmah-io-from-serilog/) | [log4net](https://docs.elmah.io/logging-to-elmah-io-from-log4net/) | [NLog](https://docs.elmah.io/logging-to-elmah-io-from-nlog/) | [Microsoft.Extensions.Logging](https://docs.elmah.io/logging-to-elmah-io-from-microsoft-extensions-logging/) | [OpenTelemetry](https://docs.elmah.io/logging-to-elmah-io-from-opentelemetry/) ... [and more](https://docs.elmah.io/) ###### CMS and Blogs Keeping an eye on errors happening in your content management system or blog, is as important as in your own code. We provide integrations for popular content management systems and blog software like [Umbraco](https://elmah.io/features/umbraco/), Sitefinity and BlogEngine.NET. Logging from [Umbraco](https://docs.elmah.io/logging-to-elmah-io-from-umbraco/) | [Sitefinity](https://docs.elmah.io/logging-to-elmah-io-from-sitefinity/) | [BlogEngine.NET](https://docs.elmah.io/logging-to-elmah-io-from-blogengine-net/) ... [and more](https://docs.elmah.io/) ###### Client-side Logging Using elmah.io [Client-side Logging](https://elmah.io/features/clientside-logging/), monitoring JavaScript errors is only a single script import away. No matter if you are using jQuery, Angular, React, or any other framework, elmah.io reveal which errors your users are experiencing in their browser. [Handle errors from JavaScript](https://docs.elmah.io/logging-to-elmah-io-from-javascript/) ###### Custom data Help debugging by enriching log messages with contextual data from your business domain. Search crashes by a predefined product, by users on a specific plan or something third. The only limit is your imagination. [Logging custom data](https://docs.elmah.io/logging-custom-data/) ###### Mobile Logging Are you relying on your users to tell you when your mobile apps crash? elmah.io for [Xamarin, Xamarin.Forms](https://elmah.io/features/xamarin-logging/), and Uno Platform will help you get the best overview of the stability of your apps. Logging from [Xamarin](https://docs.elmah.io/logging-to-elmah-io-from-xamarin/) | [Uno Platform](https://docs.elmah.io/logging-to-elmah-io-from-uno/) New Error Time Severity URL Status Code Host Error Application Source User Client IP Version Stacktrace #### Notifications ###### Receive an email when new errors occur You can even specify custom queries for only notifying you when messages with a specific pattern are logged. [Receive an email when a new error is logged](https://blog.elmah.io/receive-an-email-when-a-new-error-is-logged/) ###### Get notified on Slack or Microsoft Teams With our custom integrations for [Slack](https://elmah.io/features/slack/) and [Microsoft Teams](https://elmah.io/features/microsoft-teams/), notifying your team about issues is easier than ever. [Integrate with Slack](https://docs.elmah.io/elmah-io-apps-slack/) | [Teams](https://docs.elmah.io/elmah-io-apps-teams/) ###### Receive a daily overview email Setup a daily email on your logs, to avoid having to login constantly. Our daily digest email shows you exactly what happened during the last 24 hours and if something needs special attention. [Daily Digest Email](https://blog.elmah.io/daily-digest-email/) ###### Receive an email when error impact increases If some errors happen more frequently than usual, you want to know about it. With the error occurrence increase mail, you will get a heads-up when an error suddenly has a larger impact on your system. [Email on error impact increase](https://blog.elmah.io/new-error-impact-email-highlights-repeating-errors/) [Learn about notifications using email, Slack, Teams and more](https://elmah.io/features/notifications/) #### Integrations ###### App Store Integrate with online services like [Slack](https://elmah.io/features/slack/) and [GitHub](https://elmah.io/features/github/) with a few mouse clicks. We support a range of native integrations through our [App Store](https://elmah.io/features/appstore/). Combined with the powers of Zapier, it is possible to integrate elmah.io with more than 10,000 services. [Check out the elmah.io App Store](https://elmah.io/features/appstore/) ###### Rule Engine Use our advanced rule engine to integrate with other online services or execute actions when errors occur. Imagine getting a notification on [Slack](https://elmah.io/features/slack/) when critical errors start happening on your website. The possibilities with our rule engine are endless. [Creating Rules to Perform Actions on Messages](https://docs.elmah.io/creating-rules-to-perform-actions-on-messages/) ###### API Extend elmah.io to your own needs using our API. Integrate logs into your custom tools or check out some of the cool integrations other people are doing. [API documentation](https://elmah.io/api/v3/) Slack Teams Zapier Trello Evernote MailChimp Jira SalesForce Basecamp Podio Zendesk Asana [Learn about apps and integrations through the elmah.io App Store](https://elmah.io/features/appstore/) #### Fixing Bugs ###### Issue Tracking Utilize the built-in [issue tracker](https://elmah.io/features/issue-tracking/) to keep track of who's fixing what. Assign developers to error groups and mark an error as fixed to get a [notification](https://elmah.io/features/notifications/) if it reoccur. [Dashboards and Issue Tracking](https://blog.elmah.io/mark-errors-as-fixed-dashboards-and-more/) ###### Inspect Source Code When looking at stack traces, we often need to look at some code to understand what is going on. With the attached code feature, you can inspect your source code directly in the elmah.io UI. Stop wasting time launching Visual Studio and locating code from stack traces. [How to include source code in log messages](https://docs.elmah.io/how-to-include-source-code-in-log-messages/) ###### Quick Fixes and Stack Overflow If you use quick fixes with Visual Studio and ReSharper, you know the concept already. Get help fixing common errors and links to relevant documentation, video tutorials, and online tools, to help you fix bugs fast. In addition, elmah.io's integration with Stack Overflow, will automatically do a search for an answer to any logged error. Our revolutionary algorithm matches all potential answers against a wide range of criteria and displays the best answer. [We don't just log your errors. We help you fix them!](https://blog.elmah.io/we-dont-just-log-your-errors-we-help-you-fix-them/) #### User Tracking ###### Extended User Details With the Extended User Details, you will be able to learn more about the users experiencing problems on your website. Using a profile photo and their real name, you are better prepared when contacting them directly from elmah.io. [Extended User Details](https://blog.elmah.io/extended-user-details/) ###### User Impact Statistics When a user experiences a single error, it may not be a problem. When the same user keeps on finding bugs on your site, you can rest assured that the user will head on to your competitor. Get statistics about how impacted a user is by errors on your site. #### Deployment Tracking ###### Deployment Tracking Deployment tracking on elmah.io gives you better performance visibility of the different versions of your software products. Spot trends and help you avoid making the same mistakes over and over again. [Set Up Deployment Tracking](https://docs.elmah.io/setup-deployment-tracking/) ###### API Notifying elmah.io about new releases of your software, is as simple as calling a REST endpoint. We even support Swagger, to allow integration from practically any programming language and framework. [API Documentation](https://api.elmah.io/swagger/index.html) ###### Octopus Deploy With the native support for Octopus Deploy, setting up deployment notification is only a few clicks away. We automatically extract common attributes like the version number and release notes. [Set up on Octopus](https://docs.elmah.io/setup-deployment-tracking/#using-octopus-deploy) ###### Azure DevOps Already an Azure DevOps user? Why not notify elmah.io about new versions of your software. The version number, release note and responsible are automatically send to the elmah.io API. [Set up on Azure DevOps](https://docs.elmah.io/setup-deployment-tracking/#using-azure-devops-releases) [Learn more about Deployment Tracking and releasing new software with confidence](https://elmah.io/features/deployment-tracking/) #### Uptime Monitoring With elmah.io's uptime checks, monitoring your endpoints is built into your favorite error management tool. Integrating error logs with uptime monitoring is extremely powerful, since you can reuse both notifications and quick fixes already available. ###### Multi-region Where similar options ping from a single location only, Uptime Monitoring constantly tests your endpoints from up to 5 of our 9 regions. This ensure a notification as soon as your endpoint starts failing. ###### Better diagnostics When integrating uptime monitoring and error logging, we provide you with both sides of the story. Armed with detailed error information, you will be able to fix bugs faster. [Learn about Uptime Monitoring .NET web applications](https://elmah.io/features/uptime-monitoring/) #### Extra goodies ###### Organization and User management Manage your organization with individual user access and authorization levels to your logs. You control the level of access, making it possible for your co-workers or even external parties, to monitor company logs. [Managing Organizations and Users](https://docs.elmah.io/managing-organisations-and-users/) ###### Goodie Bag Business, Business+ and Enterprise customers on elmah.io get access to great discounts on popular tools like MyGet, OzCode and NHibernate Profiler. [Check out the elmah.io Goodie Bag](https://elmah.io/goodiebag/) ###### Invoicing Make your accountant a happy camper with the invoicing feature. Invoices may not be a very sexy feature, but it is necessary to document how you spend the money in your business. [Invoicing](https://blog.elmah.io/invoicing/) ###### Mobile, tablet, desktop and up Our dashboards are optimized to give a great overview of your application state. You can even use the Kiosk Mode to put the dashboard on a large flat screen. ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/#webpage", "url": "https://elmah.io/features/", "name": "Features - Error and crash reporting for .NET apps with elmah.io", "description": "elmah.io offers the best feature set for .NET - error logging, uptime monitoring, deployment tracking, heartbeats, and AI-powered debugging.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Affordable subscriptions for everyone Source: https://elmah.io/pricing/ Summary: Plans and pricing for elmah.io error logging, uptime monitoring, and heartbeats. From $26/month. Start with a free 21-day trial, no credit card required. ### Plans and Pricing Monthly Annually - ## Small Business $26 /mo - **3** users - **Unlimited** applications - **10,000** messages/month - **400** emails/month - **30** days retention - SSL encryptionVisual Studio IntegrationDaily BackupKick-Ass SupportInvoicesBusiness RulesMCP Server - [Sign Up](https://app.elmah.io/signup/) - ## Business $44 /mo - **20** users - **Unlimited** applications - **50,000** messages/month - **2,000** emails/month - **30** days retention - SSL encryptionVisual Studio IntegrationDaily BackupKick-Ass SupportInvoicesBusiness RulesMCP ServerGoodie Bag - **5** Uptime Checks - App Store - Deployment Tracking - Bugster AI - [Sign Up](https://app.elmah.io/signup/) - ## Business+ $89 /mo POPULAR - **Unlimited** users - **Unlimited** applications - **250,000** messages/month - **10,000** emails/month - **90** days retention - SSL encryptionVisual Studio IntegrationDaily BackupKick-Ass SupportInvoicesBusiness RulesMCP ServerGoodie Bag - **15** Uptime Checks - App Store - Deployment Tracking - Bugster AI - **5** Heartbeats - [Sign Up](https://app.elmah.io/signup/) - ## Enterprise $269 /mo - **Unlimited** users - **Unlimited** applications - **1,000,000** messages/month - **40,000** emails/month - **90** days retention - SSL encryptionVisual Studio IntegrationDaily BackupKick-Ass SupportInvoicesBusiness RulesMCP ServerGoodie Bag - **50** Uptime Checks - App Store - Deployment Tracking - Bugster AI & Machine Learning - **20** Heartbeats - Custom Documents - [Sign Up](https://app.elmah.io/signup/) #### Loved by customers worldwide #### Frequently Asked Questions​ ##### Plans and billing ###### Can I try before I buy? Absolutely! Everyone can try elmah.io completely free for 21 days, no credit card required. ###### Can I upgrade or downgrade later? Yes, you can upgrade or downgrade at any time on the organization settings page. ###### Does it take much to get started with elmah.io? Not at all. Our simple setup means elmah.io can be integrated within a couple of seconds, just by installing a NuGet package. ###### What is the difference between applications and messages? A message is the timestamp, title and additional data that you log when an error occurs, log an information message through log4net etc. An application is a container for messages. How you chose to group your messages, is entirely up to you. ###### Why are you so much cheaper than other services? We focus all our efforts on one language - .NET - and we do it well. Other services may support a ton of other languages but if you only use .NET then why pay for all the rest? That's our opinion... ###### What if I want to cancel my service? Not a problem. If you decide that elmah.io isn't for you simply cancel your subscription from your organization settings page. ###### What currency do you charge in? We always charge in USD. For some countries, we include TAX on the amount but both the subscription amount and the TAX amount will be charged in USD. ###### Can I be invoiced for my plan? Yes, custom invoices and quotes are available on the annual Business+ and Enterprise plans. When paying with a credit card through the elmah.io app, downloadable invoices are available for all purchases made with the credit card (subscriptions, upgrades, and top-ups). When invoiced manually, we offer payment options like wire transfer and PayPal. Paying with a physical check is available on the annual Enterprise plan. When paying without a credit card added to your subscription, top-ups will not be available and you will need to upgrade to a larger annual plan to get more log messages per month. A hybrid solution where you input a credit card to pay for top-ups and pay for the annual subscription through an invoice is possible, but we don't create manual invoices for top-ups. ###### Do you support filling out custom documents? Yes, we offer to fill out custom documents when purchasing an annual Enterprise plan. Custom documents can be questionnaires, security audits, and similar. All plans will have an option to receive a signed version of our DPA to make sure that we follow the requirements part of GDPR. We use the same DPA for all of our customers. The legal implications from have multiple DPAs are very complex and both time and money-consuming, why this is not something that we allow. ###### Do you provide custom plans? Of course. Get in touch to talk about your needs. ###### Can I get back my money if I'm not satisfied? Yes! Within the first 14 days, we offer a full refund. Check out our [Refund Policy](https://elmah.io/legal/refund-policy/) for details. ###### Can I ask another question? Always! Simply ask away. ##### AI and your data ###### Does AI cost extra? No AI add-on. The MCP server, the AI Plugin and the CLI are included on every plan. Bugster's analysis of your log data is available on Business and up. On Business and Business+ it runs on your own OpenAI, Gemini or Claude API key, so your provider bills you for the tokens. Enterprise can also choose a model hosted by elmah.io. ###### Who pays for tokens when I use the MCP server? Your AI tool does. The tokens used when Claude Code, Cursor or ChatGPT calls the elmah.io MCP server are part of your subscription with that tool. elmah.io does not charge per call. ###### Is my log data sent to an AI model? Only when you ask for it. Bugster's analysis is off until an organization admin turns on Extended Access, and then only runs when you click Analyze with Bugster. With the MCP server, your AI tool fetches the data it needs and sends it to that tool's model provider. On Enterprise you can pick a model hosted by elmah.io, so log data stays in our data center. ###### Can I use my own model or API key? Yes. Business and Business+ use your own OpenAI, Gemini or Claude key. Enterprise can use your own key or a model hosted by elmah.io. ###### Do you train AI models on my logs? No. elmah.io does not use your log data to train large language models. If you use your own OpenAI, Gemini or Claude key, check the data settings at that provider. #### Startups, MVP and Open Source ###### Startups To help startups grow, we offer 12 months at a discounted price. Stop worring about if your website works and free up time to build your business. [**Startups** apply for Business (save $539)](https://docs.google.com/forms/d/e/1FAIpQLSdNf5Qpmq4Tr5owKey6nE7phbfqjDNmYmG8yrMrq5nqTUSD3w/viewform "Startups apply for Business (save $539)") Read more about [elmah.io for Startups](https://elmah.io/sponsorship/startups/). ###### Non-profits Non-profits receive a generous discount. We want to acknowledge the many great non-profit organizations with error monitoring at a discounted price. **Non-profits** apply for elmah.io discount. Read more about [elmah.io for Non-profits](https://elmah.io/sponsorship/non-profits/). ###### MVPs and User Groups We would like to honor influential people in the .NET world. Apply for a free subscription a MVP or contact us about sponsoring your user group. **MVPs** apply for a free Personal subscription. Read more about [Microsoft MVP](https://elmah.io/sponsorship/microsoftmvp/), [ASPInsiders](https://elmah.io/sponsorship/aspinsiders/), [Umbraco MVP](https://elmah.io/sponsorship/umbracomvp/) and [User Group](https://elmah.io/sponsorship/usergroup/) sponsorships. ###### Free for Open Source We love open source at elmah.io. Apply for a free Small Business subscription for your project. **Open Source** apply for Small Business Read more about [Open Source](https://elmah.io/sponsorship/opensource/) licenses and your possibilities as a [Blogger](https://elmah.io/sponsorship/blogger/). ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/pricing/#webpage", "url": "https://elmah.io/pricing/", "name": "Plans and Pricing - Affordable subscriptions for everyone", "description": "Plans and pricing for elmah.io error logging, uptime monitoring, and heartbeats. From $26/month. Start with a free 21-day trial, no credit card required.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Frequently asked questions (FAQ) about elmah.io Source: https://elmah.io/faq/ Summary: Common questions and answers about elmah.io. Learn about availability, security, supported platforms, payments, and much more. ### Frequently Asked Questions (FAQ) #### General ###### Is elmah.io a high available site? Yes. elmah.io is running on Windows Azure. Websites in Windows Azure are highly available and distributed across data centers and continents. Below the cover, elmah.io stores its data in a cluster of Elasticsearch instances. ###### Is elmah.io secure? Yes. Every error logged from your website are send to elmah.io through HTTPS. The elmah.io website is accessible through HTTPS only. Besides HTTPS we are working with an external security specialist in order to make sure, that your errors are kept safe at all times. For more details, check out [Security](https://elmah.io/security/). Be aware that you should never give away your API key and log id to someone outside your team or corporation. API keys are used for getting errors through our public API, why this id should always be a secret. ###### My log contains so many errors that I lost track. You are in luck! This problem can be solved in numerous ways using elmah.io: - Expand individual errors and click the Hide option in the tools menu. This hides the error until you decide to unhide it. - Expand individual errors and click the Delete option in the tools menu. This removes an error for good. - Navigate to your log settings and select the Actions tab. Beneath this tab you can clear your entire log. - Use the Ignore Filter or Rules feature to ignore certain errors when they are logged. ###### What is the difference between ELMAH and elmah.io? ELMAH stands for Error Logging Modules and Handlers for ASP.NET and is the original and very successful open source project for logging errors from .NET web applications. elmah.io is a cloud service offering logging to the cloud from every web framework already supporting ELMAH. More details here: [ELMAH and elmah.io differences](https://docs.elmah.io/elmah-and-elmah-io-differences/). ###### Is elmah.io developed by the guys developing ELMAH? No. A group of talented developers are maintaining and doing new development of ELMAH. elmah.io is maintained by us, though we love to help out on the ELMAH framework as well. Lucky for us, the maintainers behind ELMAH have been kind enough to send us multiple pull requests on the parts of elmah.io which are open source. ###### Is elmah.io open source? Yes and no. The persistence part and the elmah.io website are not open source. We open sourced a couple of the components we have written in order to make elmah.io work, as well as our NuGet packages for logging errors to elmah.io. A lot of the internals of elmah.io are based on open source and we love making contributions to other projects. ###### Is elmah.io supported in other languages than .NET? elmah.io is built for .NET and JavaScript. Integrating with elmah.io from other languages is possible using our API. We have seen a lot of different integrations from our users over the years. The elmah.io API is a simple REST API that can ingest log messages from every programming language able to make web requests. ###### Can I browse errors from outside elmah.io? There are a few options for browsing through your errors, without visiting elmah.io: - Using the Rules tab of the log settings, you can execute custom rules each time a new error occurs. This way you can send yourself an email or make a HTTP request when new errors are logged. - ELMAH offers an error browser as well. This browser is available by visiting /elmah.axd on your own site (available for ASP.NET / MVC / Web API only). - We’ve developed an [elmah.io Visual Studio extension](https://marketplace.visualstudio.com/items?itemName=elmahio.elmahiobrowser2022), making it possible to browse your log(s) from within Visual Studio. - Finally we provide an [API](https://api.elmah.io/swagger/index.html), making it possible to integrate anything with elmah.io. Please let us know if you build something cool. ###### Does elmah.io use AI? Yes. elmah.io includes a range of AI features alongside our core error logging, uptime monitoring, deployment tracking, and heartbeats. Bugster is our built-in AI debugging companion, our MCP server lets you query logs from AI tools like ChatGPT and Claude, and AI-powered anomaly, spike, and bot detection help you focus on real issues over noise. ###### What is Bugster? Bugster is the AI debugging companion built into elmah.io. Click Analyze with Bugster on an error to get possible causes and fixes based on the stack trace and context, so you spend less time on the boring part of debugging. Bugster is one of several AI features in elmah.io, alongside the MCP server, anomaly detection, and bot detection. #### Installation ###### Which (web)frameworks support elmah.io? Every framework supporting ELMAH also supports elmah.io. Besides these, we maintain a range of integrations for popular logging frameworks like log4net, NLog and Serilog. We do a lot to test elmah.io with as many frameworks as possible and love writing about it. Find out how to integrate with elmah.io from various frameworks, by visiting [docs.elmah.io](https://docs.elmah.io). ###### The Input API key and Log Id dialog doesn't show during install. Why not? Hard to say, but most likely this issue is caused by one of two reasons: 1. You already have elmah.io configuration in your web.config file. Look for the \ element. 2. Powershell does not have sufficient privileges to execute the install.ps1 script from the elmah.io NuGet package. Start Visual Studio as administrator or set [ExecutionPolicy](http://www.hanselman.com/blog/SigningPowerShellScripts.aspx). #### Payment ###### Can I upgrade my subscription after I sign up? Of course. When you upgrade your subscription, elmah.io automatically generate the difference between what you've already paid and the new plan. ###### Can I downgrade my subscription? Yes. You pay for either 1 month or 1 year. If you downgrade your subscription, you will be automatically downgraded on the next payment. ###### Is elmah.io free? No. We provide 21 days of free trial but after that, you will need to pay if you want to continue to use elmah.io. Even though it would be cool, we cannot host a lot of logs and keep innovate on the platform for free. We really hope that you want to help us keep the releases on elmah.io flowing, by checking out our [plans and pricing page](https://elmah.io/pricing/) and consider purchasing a paid plan. ###### Can I get back my money if I'm not satisfied? Yes, within the first 14 days of your first purchase. Email us in that window and we refund the full amount. After 14 days we don't offer refunds, and we don't refund the remaining months of a yearly subscription. If you want to check elmah.io out first, the 21-day free trial needs no credit card. See the [Refund Policy](https://elmah.io/legal/refund-policy/) for details. ###### Do I get money back if I cancel my subscription in between payments? No. You pay for either 1 month or 1 year up front. You can cancel your subscription at any time, but we do not offer refunds. Check out our [Refund Policy](https://elmah.io/legal/refund-policy/) for details. #### AI and agents ###### Does elmah.io have an MCP server, and which AI tools work with it? Yes. The elmah.io MCP server is at https://mcp.elmah.io/ and works with any MCP client that supports OAuth sign-in. We have setup guides for Claude Code, Claude Desktop, ChatGPT, Codex, Cursor, Perplexity, Visual Studio (through GitHub Copilot Agent Mode), VS Code and Antigravity. It lets your assistant read errors, deployments, uptime checks, heartbeats, and mark errors as fixed, hidden or bot traffic when you ask. For scripts and CI, send an API key as a Bearer token instead of signing in. ###### What are the elmah.io AI Plugin and CLI? The AI Plugin is a free, open-source plugin for Claude Code and Cursor. It installs the MCP server and adds four skills (debug a production error, run a post-deployment check, find your most frequent errors, and check uptime status) plus a deployment-watchdog agent that reports HEALTHY or UNHEALTHY after a release. The CLI is a .NET global tool for querying, tailing, exporting log messages, creating deployments, and diagnosing an installation. It is an ordinary command-line tool, so an AI assistant with terminal access can run it too. ###### How do I let an AI agent fix production errors? Connect the MCP server, or install the AI Plugin in Claude Code or Cursor, then open your project and ask something like "Debug the most frequent error in my production log this week". The assistant reads the error and stack trace from elmah.io, finds the code in your repository, and proposes a fix. You review and ship it. After the deploy, ask it to mark the error as fixed or to run a post-deployment check. ###### Is it safe to give an AI agent access to my logs? It follows your access in elmah.io. When you sign in with OAuth, your assistant can read the logs your elmah.io user can read, and it can change messages only on logs where you have write access. The token expires after 30 days. With an API key, the assistant gets only the permissions enabled on that key. There are no delete tools: an assistant can only mark errors as fixed, hidden, bot traffic, and each of those can be undone in the app or with the matching tools. ###### Is my log data sent to an AI provider or used for training? Only when you ask for it. elmah.io does not use your log data to train large language models. Bugster's analysis is off until an organization admin turns on Extended Access, and then it only runs when you click Analyze with Bugster or ask Bugster about your logs. Through MCP, your AI tool fetches the data and processes it with its own model, so that tool's data policy applies. If you connect Bugster to your own OpenAI, Gemini, or Claude key, check the data settings at that provider. On Enterprise, you can pick a model hosted by elmah.io, so log data stays in our data center. ###### What does AI cost, and which plans include it? There is no AI add-on. The MCP server, the AI Plugin and the CLI are included on every plan, and your AI tool's own subscription covers its tokens. Bugster's analysis of your log data is available on Business and up. On Business and Business+ it runs on your own OpenAI, Gemini, or Claude API key, so you pay your provider directly. Enterprise can also use a model hosted by elmah.io. ###### What is Bugster Extended Access? A setting that lets Bugster read your log data. With it on, you get an Analyze with Bugster button on each error and can ask Bugster about your logs on the search page. You choose whether it also sees breadcrumbs, source code attached to messages, or your GitHub or Azure DevOps repository. It is off by default and available on Business, Business+, and Enterprise. ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/faq/#webpage", "url": "https://elmah.io/faq/", "name": "Frequently Asked Questions (FAQ) about elmah.io", "description": "Common questions and answers about elmah.io. Learn about availability, security, supported platforms, payments, and much more.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Is elmah.io a high available site?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. elmah.io is running on Windows Azure. Websites in Windows Azure are highly available and distributed across data centers and continents. Below the cover, elmah.io stores its data in a cluster of Elasticsearch instances." } }, { "@type": "Question", "name": "Is elmah.io secure?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Every error logged from your website are send to elmah.io through HTTPS. The elmah.io website is accessible through HTTPS only. Besides HTTPS we are working with an external security specialist in order to make sure, that your errors are kept safe at all times. For more details, check out Security. Be aware that you should never give away your API key and log id to someone outside your team or corporation. API keys are used for getting errors through our public API, why this id should always be a secret." } }, { "@type": "Question", "name": "My log contains so many errors that I lost track.", "acceptedAnswer": { "@type": "Answer", "text": "You are in luck! This problem can be solved in numerous ways using elmah.io: Expand individual errors and click the Hide option in the tools menu. Expand individual errors and click the Delete option in the tools menu. Navigate to your log settings and select the Actions tab. Beneath this tab you can clear your entire log. Use the Ignore Filter or Rules feature to ignore certain errors when they are logged." } }, { "@type": "Question", "name": "What is the difference between ELMAH and elmah.io?", "acceptedAnswer": { "@type": "Answer", "text": "ELMAH stands for Error Logging Modules and Handlers for ASP.NET and is the original and very successful open source project for logging errors from .NET web applications. elmah.io is a cloud service offering logging to the cloud from every web framework already supporting ELMAH. More details here: ELMAH and elmah.io differences." } }, { "@type": "Question", "name": "Is elmah.io developed by the guys developing ELMAH?", "acceptedAnswer": { "@type": "Answer", "text": "No. A group of talented developers are maintaining and doing new development of ELMAH. elmah.io is maintained by us, though we love to help out on the ELMAH framework as well. Lucky for us, the maintainers behind ELMAH have been kind enough to send us multiple pull requests on the parts of elmah.io which are open source." } }, { "@type": "Question", "name": "Is elmah.io open source?", "acceptedAnswer": { "@type": "Answer", "text": "Yes and no. The persistence part and the elmah.io website are not open source. We open sourced a couple of the components we have written in order to make elmah.io work, as well as our NuGet packages for logging errors to elmah.io. A lot of the internals of elmah.io are based on open source and we love making contributions to other projects." } }, { "@type": "Question", "name": "Is elmah.io supported in other languages than .NET?", "acceptedAnswer": { "@type": "Answer", "text": "elmah.io is built for .NET and JavaScript. Integrating with elmah.io from other languages is possible using our API. We have seen a lot of different integrations from our users over the years. The elmah.io API is a simple REST API that can ingest log messages from every programming language able to make web requests." } }, { "@type": "Question", "name": "Can I browse errors from outside elmah.io?", "acceptedAnswer": { "@type": "Answer", "text": "There are a few options for browsing through your errors, without visiting elmah.io. Using the Rules tab of the log settings, you can execute custom rules each time a new error occurs. This way you can send yourself an email or make a HTTP request when new errors are logged. ELMAH offers an error browser as well. This browser is available by visiting /elmah.axd on your own site (available for ASP.NET / MVC / Web API only). We’ve developed an elmah.io Visual Studio extension, making it possible to browse your log(s) from within Visual Studio. Finally we provide an API, making it possible to integrate anything with elmah.io. Please let us know if you build something cool." } }, { "@type": "Question", "name": "Does elmah.io use AI?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. elmah.io includes a range of AI features alongside our core error logging, uptime monitoring, deployment tracking, and heartbeats. Bugster is our built-in AI debugging companion, our MCP server lets you query logs from AI tools like ChatGPT and Claude, and AI-powered anomaly, spike, and bot detection help you focus on real issues over noise." } }, { "@type": "Question", "name": "What is Bugster?", "acceptedAnswer": { "@type": "Answer", "text": "Bugster is the AI debugging companion built into elmah.io. Click Analyze with Bugster on an error to get possible causes and fixes based on the stack trace and context, so you spend less time on the boring part of debugging. Bugster is one of several AI features in elmah.io, alongside the MCP server, anomaly detection, and bot detection." } }, { "@type": "Question", "name": "Which (web)frameworks support elmah.io?", "acceptedAnswer": { "@type": "Answer", "text": "Every framework supporting ELMAH also supports elmah.io. Besides these, we maintain a range of integrations for popular logging frameworks like log4net, NLog and Serilog. We do a lot to test elmah.io with as many frameworks as possible and love writing about it. Find out how to integrate with elmah.io from various frameworks, by visiting docs.elmah.io." } }, { "@type": "Question", "name": "The Input API key and Log Id dialog doesn't show during install. Why not?", "acceptedAnswer": { "@type": "Answer", "text": "Hard to say, but most likely this issue is caused by one of two reasons. You already have elmah.io configuration in your web.config file. Look for the element. Powershell does not have sufficient privileges to execute the install.ps1 script from the elmah.io NuGet package. Start Visual Studio as administrator or set ExecutionPolicy." } }, { "@type": "Question", "name": "Can I upgrade my subscription after I sign up?", "acceptedAnswer": { "@type": "Answer", "text": "Of course. When you upgrade your subscription, elmah.io automatically generate the difference between what you've already paid and the new plan." } }, { "@type": "Question", "name": "Can I downgrade my subscription?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. You pay for either 1 month or 1 year. If you downgrade your subscription, you will be automatically downgraded on the next payment." } }, { "@type": "Question", "name": "Is elmah.io free?", "acceptedAnswer": { "@type": "Answer", "text": "No. We provide 21 days of free trial but after that, you will need to pay if you want to continue to use elmah.io. Even though it would be cool, we cannot host a lot of logs and keep innovate on the platform for free. We really hope that you want to help us keep the releases on elmah.io flowing, by checking out our plans and pricing page and consider purchasing a paid plan." } }, { "@type": "Question", "name": "Can I get back my money if I'm not satisfied?", "acceptedAnswer": { "@type": "Answer", "text": "Yes, within the first 14 days of your first purchase. Email us in that window and we refund the full amount. After 14 days we don't offer refunds, and we don't refund the remaining months of a yearly subscription. If you want to check elmah.io out first, the 21-day free trial needs no credit card. See the Refund Policy for details." } }, { "@type": "Question", "name": "Do I get money back if I cancel my subscription in between payments?", "acceptedAnswer": { "@type": "Answer", "text": "No. You pay for either 1 month or 1 year up front. You can cancel your subscription at any time, but we do not offer refunds. Check out our Refund Policy for details." } } ], "publisher": { "@type": "Organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": { "@type": "ImageObject", "url": "https://elmah.io/Icons/AppIcon512x512.png", "width": 512, "height": 512 } }, "headline": "Frequently asked questions (FAQ) about elmah.io", "url": "https://elmah.io/faq/", "image": { "@type": "ImageObject", "url": "https://elmah.io/images/1500x750.png", "width": 1500, "height": 750 }, "description": "Common questions and answers about elmah.io. Learn about availability, security, supported platforms, payments, and much more." } ``` --- ## We make sure to keep your data private Source: https://elmah.io/security/ Summary: From 256 bit SSL encryption to security scans, we offer world class security for you to sleep well at night. Rest assured the we keep your data private. ### Security We keep your private data private #### Microsoft Azure Running on Microsoft Azure does not only make elmah.io run fast and scale to the daily needs. It also comes with a whole range of security features built-in: - DDoS Protection brings massive DDoS mitigation capacity to all of elmah.io. - 24-hour threat management protects the infrastructure and platform against malware, man-in-the-middle (MITM), and other threats. - Automatic updates and security patches. - Advanced access management with full changelogs. #### Data Retention When we use the word *retention*, we mean it. Where a lot of companies soft delete data to keep them around for statistical purposes, we never keep your data longer than specified in each plan. Keeping your data in the same period as you can see it through the UI, is what we want when using external systems too. Your data is forever yours and never shared with other users or third-party. ###### Encrypted End to end encryption from a 256 bit encrypted SSL connection to encrypted data stores. We provide full encryption at rest to make sure that no-one else is watching. ###### PCI Compliance With our PCI compliance, you can trust elmah.io with your credit card details. PCI is created by Visa, MasterCard, American Express, and more to ensure that we are running in a secure environment. Reach out for a copy of our SAQ A. ###### GDPR We want to be 100% transparent about what personal data we collect and how we handle it. GDPR is something that we take very seriously, why we have a dedicated [GDPR Commitment](https://elmah.io/legal/gdpr-commitment/) document available. ###### Penetration Tests We use an external partner to carry out continuous penetration tests. Tests like these are essential to make sure that security bugs are found and fixed fast. ###### Two-Factor Authentication All of the authentication mechanisms available to sign in to elmah.io supports two-factor authentication. We encourage everyone to enable two-factor using either Google Authenticator or Authy. ###### AI and MCP Access AI tools you connect through MCP can only read the logs your user can read, and only change messages where you have write access. elmah.io does not use your log data to train large language models. #### Private Networking All internal communication on the elmah.io platform takes place over private, isolated networks within Microsoft Azure using Virtual Network (VNet) Integration. By using Azure's secure networking infrastructure, we ensure that all traffic between components is routed through dedicated private channels. This architecture significantly reduces the risk of data interception and unauthorized access. VNet Integration provides a stable and high-performance connection between services, while communication between components is further protected using industry-standard encryption protocols such as TLS. #### Firewall While most of elmah.io is running on various Microsoft Azure features, we still need virtual machines. All of the machines are using a firewall and only spoken to through a secure connection. Windows Firewall thoroughly blocks all undesired traffic and only allows connections from other elmah.io components. According to WatchGuard Technologies, Inc, Windows Firewall's default security policy can reduce or completely eliminate rogue Web, FTP, person to person and file transfer servers. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ###### Found a security bug? If you discover a potential security issue on elmah.io, please follow our [Vulnerability Disclosure Program](https://docs.elmah.io/vulnerability-disclosure-program/) for details on scope, rules of engagement, and how to report responsibly. ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/security/#webpage", "url": "https://elmah.io/security/", "name": "Security - We make sure to keep your data private", "description": "From 256 bit SSL encryption to security scans, we offer world class security for you to sleep well at night. Rest assured the we keep your data private.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Everything about elmah.io and the great team behind it Source: https://elmah.io/about/ Summary: elmah.io is the best cloud logging error management system for .NET web applications. Read about elmah.io and the team behind. ### About us a small but dedicated team ##### Welcome to elmah.io! We're very happy you're here. elmah.io is a cloud-based error logging and monitoring service built specifically for .NET developers. We help you keep track of all errors happening on your websites and services, from uncaught exceptions to custom logs. Everything is searchable and available in one place, with instant notifications through email, [Slack](https://elmah.io/features/slack/), [Microsoft Teams](https://elmah.io/features/microsoft-teams/), and more. With elmah.io, you get the tools you need to identify, diagnose, and fix issues fast. I founded elmah.io after years of frustration monitoring websites. I had been using the open-source project ELMAH, but over time we ended up with weird processes, like assigning someone to check a shared mailbox for error reports manually. These solutions typically worked for a week or two and then were silently forgotten. elmah.io started as a hobby project, but a lot has happened since then. Today, elmah.io is a real company employing me and several great people. We’re 100% bootstrapped and have never received external funding. This means we can focus entirely on building a product our users love, without ever having to worry about making investors rich. Once again, welcome to elmah.io. If you haven't already, check out our [features](https://elmah.io/features/) and [sign up](https://app.elmah.io/signup/) for a free trial. We love feedback, so feel free to contact us through email or the chat widget in the lower right corner. Sincerely, Thomas Ardal, Founder of elmah.io [Heartbeats](https://www.youtube.com/watch?v=9x7dzID_fjo&autoplay=1&rel=0&showinfo=0)
**Disclaimer** elmah.io is not affiliated with the ELMAH project and none of the nice folks at ELMAH are crafting elmah.io. We contribute to the ELMAH source once in a while and we're lucky enough to have people from ELMAH helping out with the parts of elmah.io which are open sourced. ---**elmah.io is developed by** elmah.io ApS, J M Knudsens Vej 14, 8670 Laasby, Denmark
info@elmah.io
---**elmah.io brand guidelines** The elmah.io Brand Guide include information on logo usage, color palettes, typography, tone of voice, and brand messaging.
```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/about/#webpage", "url": "https://elmah.io/about/", "name": "About - Everything about elmah.io and the great team behind it", "description": "elmah.io is the best cloud logging error management system for .NET web applications. Read about elmah.io and the team behind.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Tour of how elmah.io works, step by step Source: https://elmah.io/tour/ Summary: Follow one production error through elmah.io: install, grouping, Slack alert, investigation in the dashboard or with your AI agent, fix, and release check. ### Tour of how elmah.io works Step by step, follow one error from the moment it is thrown to the release that fixes it. #### Installation The first thing you need to do after signing up, is to install elmah.io in your project. We natively support a large range of web- and logging-frameworks. Installing elmah.io in an ASP.NET Core project takes a single NuGet package: `dotnet add package Elmah.Io.AspNetCore` [ASP.NET Core](https://elmah.io/features/asp-net-core/) needs a few lines of code to register elmah.io. Using [Serilog](https://elmah.io/features/serilog/), [NLog](https://elmah.io/features/nlog/), [log4net](https://elmah.io/features/log4net/), [Blazor](https://elmah.io/features/blazor-error-logging/), [OpenTelemetry](https://elmah.io/features/opentelemetry/) or something else? Each has its own package and guide on our [documentation site](https://docs.elmah.io). Once installed, all you need to do is to lean back and start seeing errors flowing into your error logs. Once you are ready, you can start to play around with the advanced possibilities available in the elmah.io client. We log all uncaught errors and errors from logging frameworks out of the box. But you have full control over which severities and data to log to elmah.io. #### Error Monitoring When installed, errors will start flowing into elmah.io. There's a range of different dashboards available, making it easy for you to monitor the current state of your applications. Your elmah.io subscription is composed by one or more logs. You decide if you want errors from all applications inside a single log or one log per application. You can even have different logs for different environments of the same app. The Log Overview is the perfect place to go for an overview of a single application. Using a range of interesting metrics, website errors are revealed as they happen. Much like the Log Overview, we provide you with a dashboard correlating all your applications. The Organization Overview shows you how errors distribute over your portfolio of applications. The dashboard is the perfect companion to help you prioritize what to look at next - aided by AI-powered anomaly detection that automatically flags error spikes outside your normal patterns. #### Fixing Errors The Search page is the place to be when you want to dig down into all the details. Extended error information like the cookies and HTTP headers at the time of a website error are available for you to be able to debug new errors fast. elmah.io combines all the information you need to fix an error: the stack trace, the request, quick fixes that point to the right documentation, and help from Stack Overflow. Bugster, our AI assistant, analyzes the error and suggests a fix without leaving elmah.io. When an admin gives Bugster access to your log data and source code, it can point to the line of code behind the error. You can do the same from your editor, as described [at the end of this page](#ai-agents). We run an advanced grouping algorithm on all your logged errors. Grouping errors and being able to identify if an error has been seen before, will help you identify new errors as well as prioritize what to fix. Use either the built-in [issue tracker](https://elmah.io/features/issue-tracking/) or install one of the integrations to popular tools like Jira, [GitHub](https://elmah.io/features/github/), [YouTrack](https://elmah.io/features/youtrack-integration/) and GitLab. #### User Administration elmah.io isn't just for you. It's for your colleagues too. Using the Organization and User administration feature, you will be able to set up fine grained access control to both your subscription and the errors logged from your applications. With the Organization Admin feature, you turn access to multiple logs on and off from one place. As an admin, you have the full control whether you want to allow access to all logs and with what access level. Using read access, web development companies can safely let their clients browse through a read-only view of errors. #### Emails, Apps and Notifications You don't want to constantly visit elmah.io. elmah.io offers an intelligent algorithm for both grouping similar errors as well as identifying when new errors occur. When a new error is logged, we notify you through one or more channels of your choice. Setting up an integration to one of the support systems takes nothing more than a couple of mouse clicks. We support [Slack](https://elmah.io/features/slack/), Twilio, PagerDuty, and [Microsoft Teams](https://elmah.io/features/microsoft-teams/) natively. Using our Zapier app, integrating with more than 10,000 online services, can be configured using Zaps. Notifications should not flood your inbox or your chat. You hear about new errors, and with the Error Impact mail you also get an email when errors happen more frequently than usual. That way you see spikes as soon as they happen, and can fix errors before they become a huge problem. [Learn about notifications using email, SMS/Text, Slack, and more](https://elmah.io/features/notifications/) #### Ignore Filters and Rules After using elmah.io for a while, you will start to see patterns in warnings and errors, that you don't want to keep around. With Ignore Filters, we have analyzed millions of errors for you and boiled it down to a range of toggles. Want to ignore every 404? There's a toggle for that. Don't care about errors generated by crawlers? Ignore them using the click of a button. AI-powered bot detection marks bot-generated errors for you, and a rule can hide them if you would rather not see them. You know your system better than we do. When the toggles don't do the job, write your own ignore rule. Using both full-text queries and advanced queries, you can tell elmah.io exactly what to ignore: statusCode:302 AND browser:edge You've probably scrolled through a log file containing thousands of errors just to end up giving up. With Ignore Filters and Rules, you make sure only to log errors that matter. #### Uptime Monitoring We don't just want to help you monitor the errors happening in your code. We also want to help you identify when your website is down. Using elmah.io Uptime Monitoring, we continuously ping your endpoints from up to 5 of our 9 regions. When your endpoints start failing, errors are logged in your existing error logs. This means that all of the rules and notifications already set up just work. No need to maintain your team and notification rules in multiple tools. Uptime Monitoring doesn't stop with simple HTTP requests. If you want, we also monitor your SSL certificates and Domain name. Ever caused SSL errors in your users' browser or lost a domain name? With elmah.io, we start notifying you before problems start happening. [Learn more about Uptime Monitoring .NET web applications](https://elmah.io/features/uptime-monitoring/) #### Deployment Tracking With Deployment Tracking, we give you a perfect overview of the different versions of your software. When releasing a new version to production, you notify elmah.io either manually or through one of our integrations for popular deployment software. The deployment tracking feature instantly starts collecting metrics about how your new release is performing. We all have known bugs and we don't necessarily want to fix all bugs before releasing a new version. Especially not if we are running continuous deployment or similar release processes. Being able to determine if a release is causing new errors or just logs previously known bugs, is one of the great benefits of Deployment Tracking. elmah.io Deployment Tracking fits perfectly into your release process. We have guides for popular deployment tools like [Azure DevOps](https://elmah.io/azure-error-logging/), GitHub Actions, GitLab, Bitbucket, Octopus Deploy and Bamboo. The CLI and PowerShell work from any other pipeline, and Kudu covers Azure. [Learn more about Deployment Tracking and releasing new software with confidence](https://elmah.io/features/deployment-tracking/) #### Heartbeats Heartbeats is for scheduled tasks and services as Uptime Monitoring is for your websites. Add a predefined schedule and publish heartbeats to elmah.io when a scheduled task succeeds, every hour from your Windows Service, and much more. elmah.io automatically monitors your heartbeats. If you ever experienced a nightly job that hasn't been running for days before anyone noticing, you will love Heartbeats. Using the built-in [notifications](https://elmah.io/features/notifications/) and [App Store](https://elmah.io/features/appstore/), your teams are notified as soon as one of your heartbeats is unhealthy or missing. Navigate directly to elmah.io to see the run history and any missing heartbeats. The error details as you already know from general error logging present you with enough information for you to figure out what went wrong and when. [Learn more about why your scheduled tasks and services will love Heartbeats](https://elmah.io/features/heartbeats/) #### Let your AI agent investigate Fixing an error does not have to start in the browser. Connect Claude Code, Cursor, VS Code or Visual Studio to the [elmah.io MCP server](https://docs.elmah.io/setup-mcp-server/), and your agent can list new errors, read the stack trace and details, check what changed after a deployment, and mark an error as fixed when you ask. The [elmah.io AI Plugin](https://docs.elmah.io/elmah-io-ai-plugin/) for Claude Code and Cursor adds ready-made skills, like investigating your most frequent errors, and a deployment watchdog that keeps an eye on production after a release. Prefer the terminal? The [elmah.io CLI](https://docs.elmah.io/cli-overview/) searches and tails messages and creates deployments: `dotnet tool install --global Elmah.Io.Cli`. The MCP server is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/tour/#webpage", "url": "https://elmah.io/tour/", "name": "Tour of how elmah.io works, step by step", "description": "Follow one production error through elmah.io: install, grouping, Slack alert, investigation in the dashboard or with your AI agent, fix, and release check.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Minimize downtime on .NET websites Source: https://elmah.io/features/uptime-monitoring/ Summary: With Uptime Monitoring, your websites are constantly pinged from up to 5 different regions to ensure an email or Slack notification when your website is down. ### Uptime Monitoring Minimize downtime with awesome diagnostics With elmah.io Uptime Monitoring, logging and fixing uptime errors is built into your favorite error management tool. Integrating serverside error logging with uptime monitoring is extremely powerful, resulting in richer error reports and better possibilities of re-use. Tools helping you minimize downtime for your users. #### Two perspectives fix downtime faster All uptime services request your endpoints from one or more locations. When an endpoint starts failing, the service will notify you and provide your team with the error details as observed from the probing client. While that may be sufficient in some cases, imagine the strength in having detailed information from both the client and the server. elmah.io does exactly that. We already log all errors happening on your server, including detailed information about the thrown exception, the HTTP context, and more. The combination of both the client and server perspectives will help you fix uptime errors faster. elmah.io is the only service able to provide this optimized workflow for investigating downtime, by integrating Error Management and Uptime Monitoring. #### Root cause analysis When your website is down, you need the best tools to help you fix errors quickly. Downtime can be caused by a lot of issues, why a message telling you that things stopped working, simply isn't enough. Uptime Monitoring combines the client/server error with helpful Quick Fixes, known from elmah.io Error Management. Quick Fixes help you identify solutions to common problems like expired SSL certificates. All uptime errors are shipped through our advanced diagnostics engine that, besides logging all details, runs a set of checks to help you identify the root cause. Common errors like DNS misconfiguration are quickly identified and made visible on the Root Cause window. ###### Multi-Region Ping your endpoints every 5 minutes from up to 5 of our 9 regions. ###### Instant Notifications Notifications through email, Slack, etc. Existing notification rules just work. ###### SSL Expiration Warnings on SSL certificate expiration. You'll never forget to renew again. ###### Domain Expiration Reminders to renew your domain name. Competitors won't capture your domain. ###### Lighthouse Follow the history of your Lighthouse score. Never let best practices slide. #### Notifications just work Getting notified when your sites start failing, is key to fixing uptime errors fast. With Uptime Monitoring, downtime is logged in your existing error logs. This means that you don't need to spend precious time setting up notification rules in multiple systems. All of your existing notification rules and apps are optimized to work with uptime errors as well. The range of emails as well as the integrations to popular messaging systems like Slack and Microsoft Teams, ensure instant notifications to your team. Notification integrations provide enough information in the message itself, that you don't even need to visit elmah.io. For the full details, navigating from your favorite instant messaging tool to elmah.io is a single click. #### True multi-region If your websites are available throughout the world, making sure that every region works is essential. With Uptime Monitoring, your sites are automatically requested every 5 minutes from up to 5 configurable locations. Requesting from a single location to save CPU cycles, is a popular choice among Uptime Monitoring services out there. The downside to this approach is, that the service needs a second opinion when an endpoint starts failing. A process that postpones the end result of telling you that your site is down. With elmah.io Uptime Monitoring, you get instant feedback when your endpoint fails in one or more regions. You even have the freedom to configure which regions to use as well as the allowed timeout for even faster notifications. #### More than just uptime elmah.io Uptime Monitoring is not just about verifying if your endpoints return a response. We offer a range of checks and best practices built on top of our uptime robot. Read on to learn about how Uptime Monitoring can also help you implement best practices, improve the performance of your websites, and increase SEO. While pinging your website, we also validate the domain name and any SSL certificate installed on the server. If either is about to expire or already has, we store a recommendation in your log to help you take action. Never lose a domain name or have your customers tell you about a misconfigured or expired SSL certificate again. Creating fast responses that make Google and Bing happy is more important than ever. Each uptime check will collect performance, SEO, and additional quality scores from Google Lighthouse. Best practices on how to improve security on your website are automatically fetched from the industry-standard SSL Server Test provided by Qualys SSL Labs, and we inspect the HTTP response headers returned by your endpoint daily. We highlight misconfigured headers, that can leave your site exposed to attacks such as XSS and clickjacking. Having built websites for more than 20 years, we have developed our own set of canonical checks that will help you set up correct redirect rules and meta tags on your website. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/uptime-monitoring/#webpage", "url": "https://elmah.io/features/uptime-monitoring/", "name": "Uptime Monitoring - Minimize downtime on .NET websites", "description": "With Uptime Monitoring, your websites are constantly pinged from up to 5 different regions to ensure an email or Slack notification when your website is down.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Release new software with confidence Source: https://elmah.io/features/deployment-tracking/ Summary: Deployment Tracking lets you release, without having to worry if you've introduced bugs. Using dashboards, new errors will show up in seconds. ### Deployment Tracking Release new software with confidence Deployment Tracking lets you release new versions of your software, without having to worry if you've introduced a new bug. With elmah.io's intelligent deployment dashboards, newly introduced errors will show up in seconds. The source control integration will show you the exact commit causing a new error. #### Deployment monitoring for DevOps engineers Recent agile processes like Scrum and Kanban allow development teams to release often. With frequent releases comes great responsibilities, but also a lot of benefits. Monitoring your software should be an essential part of any serious deployment and release process. With Deployment Tracking, we give you a perfect overview of the different versions of your software. When releasing a new version to production, you notify elmah.io either manually or through one of our integrations for popular deployment software. The deployment tracking feature instantly starts collecting metrics about how your new release is performing. #### Spot errors as they are introduced We all have known bugs and we don't necessarily want to fix all bugs before releasing a new version. Especially not if we are running continuous deployment or similar release processes. Being able to determine if a release is causing new errors or just logs previously known bugs, is one of the great benefits of Deployment Tracking. The New error metric shows how many errors that each release introduced. Watching a list of errors is available by clicking the New error metric, which will take you straight to the rich elmah.io error view, that you already know and love. Interesting metrics like the number of users and browsers that are affected by a new release, are available on the Deployment Tracking dashboard. The metrics will give your DevOps engineers the perfect tool to follow-up on deployments. #### Integrates with the tools you already use When implementing a successful DevOps process, you need tools. Back in the day, software was released every 6 months by hand. When releasing frequently, DevOps engineers are hired to automate this process. elmah.io Deployment Tracking fits perfectly into your release process. We integrate natively with popular deployment products like [Azure DevOps](https://elmah.io/azure-error-logging/) and Octopus Deploy. We also integrate with Azure by utilizing the Kudu deployment engine. Using Umbraco? You're in luck! We love Umbraco too and have a native integration with Umbraco and Umbraco Cloud. #### Version control integration Nobody likes a blame game. But when a bug is introduced, being able to determine what caused the error, can make a big difference. Fixing recently introduced bugs fast can mean life or dead of most online products today. With the source code integration, we automatically pull the changelog from your deployment product like Azure DevOps or Octopus Deploy. You can even use elmah.io Deployment Tracking as your main list of releases and what's in them. Finally, our integrations pull information about who triggered each deployment. In cases where people are actually involved, you know who to talk to first, when errors starts to roll into your logs. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/deployment-tracking/#webpage", "url": "https://elmah.io/features/deployment-tracking/", "name": "Deployment Tracking - Release new software with confidence", "description": "Deployment Tracking lets you release, without having to worry if you've introduced bugs. Using dashboards, new errors will show up in seconds.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## .NET scheduled tasks and services monitoring Source: https://elmah.io/features/heartbeats/ Summary: Heartbeats are monitoring for .NET scheduled tasks and services. Monitor if programs run and even more important ... NOT run. Support for ASP.NET Core too. ### Heartbeats .NET scheduled tasks and services monitoring #### Your services will love heartbeats Monitoring services requires more than simple error logging. We have all implemented a scheduled task to run every night only to hear someone at the standup: "The nightly batch job hasn't run the last 2 weeks" 😱 **Monitoring if a service ran successfully is as important as monitoring if it fails**. With Heartbeats configured on all of your services, elmah.io will automatically keep track of your services and scheduled tasks. When a program doesn't publish a heartbeat in time, you will receive a notification. **Reacting on missing heartbeats** should be an essential part of your monitoring process. Drag the sliders below to see how Heartbeats work: **Interval** **Grace** **Explanation** This heartbeat will expect a heartbeat request from your service/application every . If more than pass since the last heartbeat, an error will be created in your log. #### Supported by common frameworks One of many strengths of elmah.io is the **deep integration** into commonly used logging and web frameworks. Where other solutions provide a .NET client and let you implement each integration, we want the installation to require nothing more than installing a NuGet package and adding a bit of configuration. Heartbeats is no different. We support a range of choices when needing to integrate Heartbeats into your pipeline. With the **integration for ASP.NET Core Health Checks**, monitoring the results of your health checks requires nothing more than a single line of code. Using the **integration with Azure Functions**, monitoring your time-based (or any type of) functions is available by including an attribute. ###### Best in class monitoring Heartbeat monitoring for tasks and services Are your current jobs unhealthy or disabled? ###### Native Support Native support for ASP.NET Core, Azure Functions, Hangfire, and more ###### Instant Notifications Notifications through email, Slack, etc. Existing notification rules just work ###### Extendable Log heartbeats from everywhere Supported by the API and the .NET client #### Notifications just work You already spend time configuring your teams, their users, and individual log access. By leveraging elmah.io's existing notification system, all of **your notification rules work great with Heartbeats too**. From email to Slack and Microsoft Teams we have got you covered. Make sure to receive a notification on one or more channels of choices to react on errors or misconfigured scheduled tasks. **With elmah.io Heartbeats it's easy!** [Start logging now](https://app.elmah.io/signup/) ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/heartbeats/#webpage", "url": "https://elmah.io/features/heartbeats/", "name": "Heartbeats - .NET scheduled tasks and services monitoring", "description": "Heartbeats are monitoring for .NET scheduled tasks and services. Monitor if programs run and even more important ... NOT run. Support for ASP.NET Core too.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Notifications on Slack, Teams, and text/SMS Source: https://elmah.io/features/notifications/ Summary: Set up notifications on a channel of choice. We support a wide range of integrations like mail, Slack, and Microsoft Teams. Never miss another error. ### Notifications Get notified when errors start happening Getting notifications when errors start happening on your website, is an essential part of any mature error management strategy. We support a wide range of notifications options, which satisfies everyone from the developers who will fix the bugs to the CTO wanting an overview of the quality of each application. #### Emails on new errors Get an email every time a new error is registered. Knowing about recently introduced errors, is an essential part of any development process. With the New Error email, you will receive all of the information needed to start debug, directly in your inbox. The email provides details like the message of the error and where it happened. Every member of your team will have the chance to subscribe to the New Error email. If you have a dedicated person handling all of the errors, he/she can either subscribe through the email settings or install the Mailman app (Business, Business+ and Enterprise only). With the Mailman app, you can even notify people outside your development team. Systems not already supported through our App Store, can be integrated using the Mailman app as well. Widely adopted systems like Jira and [YouTrack](https://elmah.io/features/youtrack-integration/) can automatically create issues from emails. #### Notifications on Slack and Microsoft Teams Chances are that you don’t just rely on emails for your team communication. Real-time messaging systems like [Slack](https://elmah.io/features/slack/) and [Microsoft Teams](https://elmah.io/features/microsoft-teams/) have gained major traction during the last few years. elmah.io supports a wide range of instant messaging tools through our App Store. Setting up an integration to one of the support systems takes nothing more than a couple of mouse clicks. We support [Slack](https://elmah.io/features/slack/) and [Microsoft Teams](https://elmah.io/features/microsoft-teams/) natively. Using our Zapier app, integrating with more than 10,000 online services, can be configured using Zaps. #### Daily digest email Subscribe to our Daily Digest email to get a daily overview of the log activity in the last 24 hours. The Daily Digest email is a great way for you to keep up, without having to log into elmah.io constantly. The email contains a graph showing the activity per hour, as well as a list of both critical and frequent errors. While the Daily Digest email offers a great overview of the errors happening on your site, being able to dig down into the details is important for developers to debug errors. Most information within the Daily Digest email is clickable and sends you directly to the error details within the elmah.io UI. Whether you are a developer on the team or the company CTO, the Daily Digest email is the perfect chance for monitoring the quality of your websites, without logging into elmah.io. #### Spike detection and notifications Having to wait for worst-case 24 hours to react to errors isn't optimal in most cases. When features start to break down, you need to put your developers on the problem straight away. Even though you get a notification about new errors on mail, [Slack](https://elmah.io/features/slack/), or another channel of choice, you don't know the severity of the error. An error happening a single time for a single customer may or may not be critical. An error happening over and over again is. With the Error Impact mail, you will receive an email when errors happen more frequently than usual. For customers with [Anomaly Detection](https://elmah.io/ai/anomaly-and-bot-detection/), we use machine learning to store spikes in your logs. Storing spikes as errors will notify you through integrations like Slack and Teams. elmah.io will help you identify spikes as soon as they happen, giving you the chance to fix errors before they become a huge problem. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/notifications/#webpage", "url": "https://elmah.io/features/notifications/", "name": "Notifications - Notifications on Slack, Teams, and text/SMS", "description": "Set up notifications on a channel of choice. We support a wide range of integrations like mail, Slack, and Microsoft Teams. Never miss another error.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ``` --- ## Best in class crash management for ASP.NET Core with elmah.io Source: https://elmah.io/features/asp-net-core/ Summary: Automatically log all uncaught errors in your ASP.NET Core applications. Instant team notifications using Uptime Monitoring as soon as things stop working. ### Error logging for ASP.NET Core Best in class crash management for ASP.NET Core #### Every exception, with the request that caused it With elmah.io, monitoring your ASP.NET Core application requires no more than a few lines of configuration. We automatically pick up all errors on your website and log them to a log on elmah.io. Errors are decorated with a lot of contextual information to help you to fix each error. Server variables, cookies, and form values can play an essential part in debugging why an error is happening. Using our well-documented NuGet package for ASP.NET Core, appending custom variables is a piece of cake. Using rules and apps available on elmah.io, ignoring errors generated by bots, or notifying your team on [Slack](https://elmah.io/features/slack/) or [Microsoft Teams](https://elmah.io/features/microsoft-teams/) are easily added using a few mouse clicks. #### Health checks and uptime monitoring ASP.NET Core introduced the new concept of health checks. Using health checks, your application continuously verifies its own state by executing a set of predefined rules. With the elmah.io integration for ASP.NET Core Health Checks, failing health checks are automatically logged as failing heartbeats on elmah.io. With elmah.io Uptime Monitoring, you are notified as soon as your application starts failing. By combining Uptime Monitoring with ASP.NET Core Health Checks, you are told exactly why your endpoints are failing. You won't believe the difference in time-to-fix when going from "Your website failed with a status code of 500" to "Your website failed because it couldn't connect to the database". #### Structured logging with Microsoft.Extensions.Logging Logging uncaught exceptions is one thing. What about all of the log statements that developers need to add today? With our integration with [Microsoft.Extensions.Logging](https://elmah.io/features/microsoft-extensions-logging/), you can log everything from verbose to fatal messages from ASP.NET Core. Since messages logged through Microsoft.Extensions.Logging goes in the same error log as uncaught errors, existing rules and notifications just work. The elmah.io integration for Microsoft.Extensions.Logging supports structured logging. If you ever tried scrolling through file-based log files, you know how important being able to separate and search by properties can be. #### Breadcrumbs When backend methods in ASP.NET Core fail, it can be a challenging task to figure out what happened. The cookies, server variables, and similar information logged by elmah.io do not always help to figure out what went wrong. Looking through multiple log statements to see what happened just before the error has been a common practice for years. Until now! With Breadcrumbs on elmah.io, you can both manually log breadcrumbs in memory and have ASP.NET Core store messages logged through Microsoft.Extensions.Logging and use them as breadcrumbs. When an error is thrown, elmah.io automatically picks up all of the error details as well as the preceding breadcrumbs leading up to the error. This will make it a lot quicker to find, reproduce, and fix errors. #### Let your AI agent read your ASP.NET Core errors Connect Claude Code, Cursor, VS Code or Visual Studio to the elmah.io MCP server. Your agent can list new errors, read the stack trace and request details, check what changed after a deployment, and mark an error as fixed when you ask. Example conversation: **You:** What new errors did version 2.4.1 introduce in production? **Agent:** Two new error groups since 2.4.1 was deployed 40 minutes ago. The biggest is a NullReferenceException in OrderService.Calculate, 112 occurrences, all on /checkout. The stack trace points to line 88. In Claude Code, add the server with one command: ``` claude mcp add --transport http --client-id claudecode elmahio https://mcp.elmah.io/mcp ``` The MCP server is included on every plan and is currently in beta. [Set up the MCP server](https://docs.elmah.io/setup-mcp-server/). #### elmah.io vs. ElmahCore | Feature | ElmahCore | elmah.io | | --- | --- | --- | | Error Logging | | | | Self-hosted | | | | Cloud-hosted | | | | Search | | | | New error detection | | | | [Error grouping](https://blog.elmah.io/improved-message-grouping/) | | | | [Issue tracking](https://elmah.io/features/issue-tracking/) | | | | [Microsoft.Extensions.Logging](https://docs.elmah.io/logging-to-elmah-io-from-microsoft-extensions-logging/) | | | | [Clientside error logging](https://elmah.io/features/clientside-logging/) | | | | [Slack/Microsoft Teams/etc.](https://elmah.io/features/appstore/) | | | | [Deployment tracking](https://elmah.io/features/deployment-tracking/) | | | | [Uptime monitoring](https://elmah.io/features/uptime-monitoring/) | | | | [Heartbeats](https://elmah.io/features/heartbeats/) | | | | AI agent access (MCP server) | | | #### Set up in a few lines Install the NuGet package, add your API key and log ID, and call `UseElmahIo`. That is the whole setup. ``` dotnet add package Elmah.Io.AspNetCore ``` ``` builder.Services.AddElmahIo(options => { options.ApiKey = "API_KEY"; options.LogId = new Guid("LOG_ID"); }); // ... app.UseElmahIo(); ``` Call `UseElmahIo` after `UseExceptionHandler` and `UseAuthentication`, and before your endpoints. Your API key and log ID are shown on the install page when you sign up. [Read the full setup guide](https://docs.elmah.io/logging-to-elmah-io-from-aspnet-core/). #### How it looks Here is what elmah.io logs for an unhandled exception: - The request, with URL, status code, cookies, form values and server variables. - The exception type and the stack trace. - [Breadcrumbs](https://docs.elmah.io/logging-breadcrumbs-from-asp-net-core/), the log messages that led up to the error. - Messages from [Microsoft.Extensions.Logging](https://docs.elmah.io/logging-to-elmah-io-from-microsoft-extensions-logging/) in the same log. Failing [health checks](https://docs.elmah.io/logging-heartbeats-from-asp-net-core/) show up as heartbeats, and [deployment tracking](https://elmah.io/features/deployment-tracking/) shows which release broke what. *An unhandled exception in elmah.io, with the request and the stack trace.* #### Frequently asked questions ##### Does elmah.io work with minimal APIs? Yes. `UseElmahIo` works with minimal APIs, MVC, Razor Pages and Web API controllers. The Elmah.Io.AspNetCore repository has a [minimal API sample](https://github.com/elmahio/Elmah.Io.AspNetCore/tree/main/samples). ##### Can I log handled exceptions and ILogger messages too? Yes. Install [Elmah.Io.Extensions.Logging](https://elmah.io/features/microsoft-extensions-logging/) to send ILogger messages to the same log as your uncaught exceptions. Messages logged through ILogger use the same rules and notifications. ##### How is this different from ElmahCore? ElmahCore is self-hosted: it runs inside your app and shows errors on a page you host yourself. elmah.io is cloud-hosted and adds search, error grouping, new error detection, notifications, uptime monitoring and AI agent access. See the comparison table above. ##### Can I use elmah.io next to Application Insights? Yes. The elmah.io package doesn't depend on Application Insights, so both can run in the same app. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/asp-net-core/#webpage", "url": "https://elmah.io/features/asp-net-core/", "name": "Best in class crash management for ASP.NET Core with elmah.io", "description": "Automatically log all uncaught errors in your ASP.NET Core applications. Instant team notifications using Uptime Monitoring as soon as things stop working.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Does elmah.io work with minimal APIs?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. UseElmahIo works with minimal APIs, MVC, Razor Pages and Web API controllers. The Elmah.Io.AspNetCore repository has a minimal API sample." } }, { "@type": "Question", "name": "Can I log handled exceptions and ILogger messages too?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Install Elmah.Io.Extensions.Logging to send ILogger messages to the same log as your uncaught exceptions. Messages logged through ILogger use the same rules and notifications." } }, { "@type": "Question", "name": "How is this different from ElmahCore?", "acceptedAnswer": { "@type": "Answer", "text": "ElmahCore is self-hosted: it runs inside your app and shows errors on a page you host yourself. elmah.io is cloud-hosted and adds search, error grouping, new error detection, notifications, uptime monitoring and AI agent access. See the comparison table above." } }, { "@type": "Question", "name": "Can I use elmah.io next to Application Insights?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. The elmah.io package doesn't depend on Application Insights, so both can run in the same app." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## Integrating Serilog and elmah.io Source: https://elmah.io/features/serilog/ Summary: Serilog and elmah.io go hand in hand with the elmah.io sink for Serilog. Like Serilog itself, the elmah.io supports structured logging as well. ### Cloud logging for Serilog elmah.io and Serilog go hand in hand! #### Serilog in the Cloud The elmah.io sink for Serilog sends the events you already log with Serilog to the cloud, where they are searchable in one place and can notify your team about new errors. Add one NuGet package, add the sink to your logger configuration and keep your other sinks as they are. Like Serilog itself, the sink is built with support for structured log data in mind. Where other sinks simply store a dumb log message, we respect the template and preserve the properties. Configure the sink in C# or in `appsettings.json`, set a minimum level on the sink to control which messages are sent, and call `Log.CloseAndFlush()` before your program ends so buffered messages are not lost. #### Search by the properties you log Like any other message logged to elmah.io, everything is searchable through the UI. We even support searching by property names specified inside Serilog messages. How would you like to group errors by user in your current text-based log files? In elmah.io that is possible using a single mouse-click. Full-text search and advanced search filters make it possible to use elmah.io as an issue tracker. The huge benefit is that Serilog will automatically fill your issue tracker with bugs, rather than relying on your test team or, in worst case, your users to report bugs. #### Enrichers and LogContext work as they do today One of many nice features of Serilog is the option of enriching log messages with contextual information. Enrichers are fully supported by the elmah.io sink and the enriched data can be made searchable. Structured properties embedded inside Serilog log messages, are automatically extracted and placed inside the right fields on elmah.io. Properties from `Enrich.WithProperty`, `Enrich.FromLogContext` and `LogContext.PushProperty`, and from the message template, end up on the Data tab of each message. Reserved property names like `User` fill the dedicated fields in elmah.io, so you can filter and group by values you already log. Having log messages as documents rather than concatenated lines of text, open a whole new window to your log messages. #### Fully documented Not an expert in Serilog? No worries, fully documented elmah.io and Serilog are available through NuGet. We even provide you with sample code to get up and running. Everything from simple console applications to modern web applications is supported. The documentation covers the whole sink, not only the basic setup. Use message hooks to decorate every message with a version number or attach source code, filter out messages you do not want to store, and handle errors if logging to elmah.io fails. Remove sensitive data from your properties before it leaves your application, and map Serilog's `SourceContext` to the Category field to group messages by class or namespace. Prefer configuration files? The sink works from `appsettings.json`, and `Serilog.Exceptions` adds extended exception details. [Read the Serilog documentation](https://docs.elmah.io/logging-to-elmah-io-from-serilog/) or [browse the samples on GitHub](https://github.com/elmahio/serilog-sinks-elmahio/tree/main/examples). #### Let your AI agent read your Serilog errors Connect Claude Code, Cursor, VS Code or Visual Studio to the elmah.io MCP server. Your agent can list new errors, read the stack trace and message details, check what changed after a deployment, and mark an error as fixed when you ask. Example conversation: **You:** What are the most frequent errors in my production log this week? **Agent:** The top error is a TimeoutException in PaymentService.Charge, 87 occurrences, mostly in the evening. The second is a NullReferenceException in OrderService.Calculate, 31 occurrences. In Claude Code, add the server with one command: ``` claude mcp add --transport http --client-id claudecode elmahio https://mcp.elmah.io/mcp ``` The MCP server is included on every plan and is currently in beta. [Set up the MCP server](https://docs.elmah.io/setup-mcp-server/). #### Set up in a few lines Install the NuGet package, configure the sink with your API key and log ID, and log as usual. ``` dotnet add package Serilog.Sinks.ElmahIo ``` ``` Log.Logger = new LoggerConfiguration() .WriteTo.ElmahIo(new ElmahIoSinkOptions("API_KEY", new Guid("LOG_ID"))) .CreateLogger(); Log.Error(exception, "Payment failed for {OrderId}", orderId); Log.CloseAndFlush(); ``` Call `Log.CloseAndFlush()` before your program ends, so buffered messages are sent. Only want warnings and above in elmah.io? Set `MinimumLogEventLevel` on the sink options and keep your other sinks as verbose as you like. Prefer config files? The sink also works from `appsettings.json`. Your API key and log ID are shown on the install page when you sign up. [Read the full setup guide](https://docs.elmah.io/logging-to-elmah-io-from-serilog/). #### How it looks Here is what elmah.io logs for a Serilog event: - The message and the message template. - Every property as its own field. Properties from the template, enrichers and `LogContext` are on the Data tab. - Reserved property names fill dedicated fields, for example `User`. - The exception type and stack trace when you pass an exception. *An exception in elmah.io, with the request and the stack trace.* #### Frequently asked questions ##### Can I keep my file or console sink and add elmah.io? Yes. Serilog sinks are additive, so keep your existing sinks and add `WriteTo.ElmahIo(...)` next to them. ##### How do I avoid sending debug and information events? Set `MinimumLogEventLevel` on `ElmahIoSinkOptions`, for example to Warning, or set `MinimumLevel` in `appsettings.json`. ##### Can I configure the sink in appsettings.json? Yes, with the `Serilog.Settings.Configuration` package. Spell the `apiKey` and `logId` arguments with a lowercase first character. ##### How do I log an exception? Pass it as the first argument, for example `Log.Error(e, "The actual error message")`. The exception type and stack trace are logged with the message. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/serilog/#webpage", "url": "https://elmah.io/features/serilog/", "name": "Serilog - Integrating Serilog and elmah.io", "description": "Serilog and elmah.io go hand in hand with the elmah.io sink for Serilog. Like Serilog itself, the elmah.io supports structured logging as well.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Can I keep my file or console sink and add elmah.io?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Serilog sinks are additive, so keep your existing sinks and add WriteTo.ElmahIo(...) next to them." } }, { "@type": "Question", "name": "How do I avoid sending debug and information events?", "acceptedAnswer": { "@type": "Answer", "text": "Set MinimumLogEventLevel on ElmahIoSinkOptions, for example to Warning, or set MinimumLevel in appsettings.json." } }, { "@type": "Question", "name": "Can I configure the sink in appsettings.json?", "acceptedAnswer": { "@type": "Answer", "text": "Yes, with the Serilog.Settings.Configuration package. Spell the apiKey and logId arguments with a lowercase first character." } }, { "@type": "Question", "name": "How do I log an exception?", "acceptedAnswer": { "@type": "Answer", "text": "Pass it as the first argument, for example Log.Error(e, \"The actual error message\"). The exception type and stack trace are logged with the message." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## Integrating NLog and elmah.io Source: https://elmah.io/features/nlog/ Summary: NLog and elmah.io go hand in hand with the elmah.io target for NLog. Log everything from trace to fatal messages to elmah.io including event properties. ### Cloud logging for NLog elmah.io and NLog go hand in hand! #### NLog in the Cloud The elmah.io target for NLog sends the messages you already log with NLog to the cloud, where they are searchable in one place and can notify your team about new errors. Add one NuGet package and a few lines of configuration, and keep your other targets as they are. The target is open source and officially supported by the elmah.io team, and all messages are synced with elmah.io's infrastructure hosted on Microsoft Azure. Configuration is up to you. Add the target to `nlog.config`, `app.config` or `web.config`, set it up in `appsettings.json`, or create it in C# code. A rule decides which levels are sent, so you can start with information and above and change it later. Your other targets keep working as before. #### Structured logging with event properties Already using NLog event properties and structured logging? Both are extracted before sending off to elmah.io and treated as custom properties with all of the benefits that come with that feature. Search log messages generated by a specific user or by the server causing errors. Properties in the message template, like `{FirstName}`, are logged together with the message. Properties added through `LogEventInfo`, the fluent API or scope properties end up on the Data tab, and reserved property names like `User` fill the dedicated fields in elmah.io. That makes the values you already log something you can filter and group by. #### Search everything you log Like any other message logged to elmah.io, everything is searchable through the UI. We even support searching by event property names. We automatically map the information given by NLog to individual fields on elmah.io. By using full-text search and search filters, you can run advanced searches across all of your log messages. Properties are searchable by name, so you can look for a specific user or a property value you log. Combine full-text search with filters on things like severity, application and time to narrow a long log down to the messages that matter. #### Fully documented Not an expert in NLog configuration? No worries, fully documented elmah.io and NLog are available through NuGet. We even provide you with sample code to get up and running. How you want to configure NLog is up to you. We support configuration through `app/web.config`, `nlog.config`, `appsettings.json` and C# code. By utilizing NLog's layout renderers, you can even share configuration between NLog and other elmah.io integrations. The documentation covers the whole target, not only the basic setup. Use message hooks to decorate every message with a version number or attach source code, filter out messages you do not want to store, and handle errors if logging to elmah.io fails. Set the application name, version and category on your messages, and log custom properties with `LogEventInfo`, the fluent API or scope properties. [Read the NLog documentation](https://docs.elmah.io/logging-to-elmah-io-from-nlog/) or [browse the samples on GitHub](https://github.com/elmahio/elmah.io.nlog/tree/main/samples). #### Let your AI agent read your NLog errors Connect Claude Code, Cursor, VS Code or Visual Studio to the elmah.io MCP server. Your agent can list new errors, read the stack trace and message details, check what changed after a deployment, and mark an error as fixed when you ask. Example conversation: **You:** What are the most frequent errors in my production log this week? **Agent:** The top error is a TimeoutException in PaymentService.Charge, 87 occurrences, mostly in the evening. The second is a NullReferenceException in OrderService.Calculate, 31 occurrences. In Claude Code, add the server with one command: ``` claude mcp add --transport http --client-id claudecode elmahio https://mcp.elmah.io/mcp ``` The MCP server is included on every plan and is currently in beta. [Set up the MCP server](https://docs.elmah.io/setup-mcp-server/). #### Set up in a few lines Install the NuGet package, add the target and a rule to your `nlog.config` with your API key and log ID, and log as usual. ``` dotnet add package Elmah.Io.NLog ``` ``` ``` ``` log.Warn("This is a warning message"); log.Error(new Exception(), "This is an error message"); ``` The rule above logs information, warning, error and fatal messages. Raise `minlevel` if you only want warnings and above in elmah.io, and keep your other targets as verbose as you like. Avoid NLog `4.6.0`, which has a bug that stops the elmah.io target from loading. Your API key and log ID are shown on the install page when you sign up. [Read the full setup guide](https://docs.elmah.io/logging-to-elmah-io-from-nlog/). #### How it looks Here is what elmah.io logs for an NLog message: - The message, with its severity and logger name. - Every event property as its own field on the Data tab, including structured properties like `{FirstName}`. - Reserved property names fill dedicated fields, for example `User`. - The exception type and stack trace when you pass an exception. *An exception in elmah.io, with the request and the stack trace.* #### Frequently asked questions ##### Can I keep my existing NLog targets and add elmah.io? Yes. Add the elmah.io target and a rule that writes to it, and keep your file, console and other targets as they are. ##### How do I avoid sending trace and debug messages? Set `minlevel` on the rule that writes to elmah.io, for example to Warn. A rule with `minlevel="Info"` sends information, warning, error and fatal messages. ##### Can I configure the target in appsettings.json or in code? Yes. In `appsettings.json`, use the `NLog.Extensions.Logging` package. In code, create an `ElmahIoTarget` and add it to your `LoggingConfiguration`. ##### How do I log an exception? Pass the exception to the logger, for example `log.Error(new Exception(), "This is an error message")`. The exception type and stack trace are logged with the message. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/nlog/#webpage", "url": "https://elmah.io/features/nlog/", "name": "NLog - Integrating NLog and elmah.io", "description": "NLog and elmah.io go hand in hand with the elmah.io target for NLog. Log everything from trace to fatal messages to elmah.io including event properties.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Can I keep my existing NLog targets and add elmah.io?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Add the elmah.io target and a rule that writes to it, and keep your file, console and other targets as they are." } }, { "@type": "Question", "name": "How do I avoid sending trace and debug messages?", "acceptedAnswer": { "@type": "Answer", "text": "Set minlevel on the rule that writes to elmah.io, for example to Warn. A rule with minlevel=\"Info\" sends information, warning, error and fatal messages." } }, { "@type": "Question", "name": "Can I configure the target in appsettings.json or in code?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. In appsettings.json, use the NLog.Extensions.Logging package. In code, create an ElmahIoTarget and add it to your LoggingConfiguration." } }, { "@type": "Question", "name": "How do I log an exception?", "acceptedAnswer": { "@type": "Answer", "text": "Pass the exception to the logger, for example log.Error(new Exception(), \"This is an error message\"). The exception type and stack trace are logged with the message." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## Integrating log4net and elmah.io Source: https://elmah.io/features/log4net/ Summary: log4net and elmah.io go hand in hand with the elmah.io appender for log4net. We even support structured logging, log levels and context properties. ### Cloud logging for log4net elmah.io and log4net go hand in hand! #### log4net in the Cloud The elmah.io appender for log4net has been built from the ground up. No cheating using the RemotingAppender to show simple unstructured log messages. This is the real deal! With log4net and elmah.io, all of your log messages go directly to the cloud. Having log messages, logged through log4net, in the cloud makes it searchable. If you ever tried logging into a remote server and searching through GBs of file-based log messages, you will love log4net with elmah.io. #### Structured Logging By integrating log4net with our API, we make sure that structured data like level, message, and username are kept as individual properties making it searchable on elmah.io. Log messages logged through log4net are on its own not structured data as you know it from similar log frameworks. But with elmah.io's appender for log4net, we extract properties directly from your log message properties. elmah.io takes your log4net logging to the next level by filling in the blanks. Think of being able to do the following with your current log files: - Group your log messages by their environment. - Search for 'some username' in GBs of log messages. - Send me an email when a [System.NullReferenceException](https://elmah.io/exceptions/System.NullReferenceException/) is logged. #### Custom Properties Already using log4net Context Properties? Context is extracted before sending off to elmah.io and treated as custom properties with all of the benefits that come with that feature. By logging contextual properties as individual fields, you can perform complex tasks, which is never possible using a log file. Reserved property names, like `User`, fill the matching field in elmah.io instead of ending up on the Data tab, and the logger name of log4net becomes the category. #### Fully Documented Not an expert in log4net configuration? No worries, fully documented elmah.io and log4net are available through NuGet. We even provide you with sample code to get up and running. To get a quick demo of the log4net integration for elmah.io, take a quick peek at the video below. Let's face it, log4net hasn't been the best-documented logging framework out there. We want to help you get started quickly, and provide you with help through our [log4net Tutorial](https://blog.elmah.io/log4net-tutorial-the-complete-guide-for-beginners-and-pros/). The [log4net documentation](https://docs.elmah.io/logging-to-elmah-io-from-log4net/) covers message hooks, ASP.NET Core and troubleshooting too. #### Let your AI agent read your log4net errors Connect Claude Code, Cursor, VS Code or Visual Studio to the elmah.io MCP server. Your agent can list new errors, read the stack trace and message details, check what changed after a deployment, and mark an error as fixed once you have shipped the change. Example conversation: **You:** Which log4net errors are new since the last deployment? **Agent:** Two new errors since deployment 3.2.0. The most frequent is a NullReferenceException in CartService.Update, 9 occurrences, all with the same ThreadId property. I found the line in the repository and can suggest a fix. In Claude Code, add the server with one command: ``` claude mcp add --transport http --client-id claudecode elmahio https://mcp.elmah.io/mcp ``` The MCP server is included on every plan and is currently in beta. [Set up the MCP server](https://docs.elmah.io/setup-mcp-server/). #### Set up in a few lines Install the NuGet package, enable the XML configurator, add the appender to your `web.config` or `app.config` with your API key and log ID, and log as usual. ``` dotnet add package Elmah.Io.Log4Net ``` ``` [assembly: log4net.Config.XmlConfigurator(Watch = true)] ``` ```
``` ``` var log = log4net.LogManager.GetLogger(typeof(HomeController)); log.Info("Trying something"); log.Error("Error happening", ex); ``` The root level above sends information, warning, error and fatal messages. Raise it if you only want warnings and above in elmah.io. Your API key and log ID are shown on the install page when you sign up. [Read the full setup guide](https://docs.elmah.io/logging-to-elmah-io-from-log4net/). #### How it looks Here is what elmah.io logs for a log4net message: - The message, with its level and the logger name as the category. - Context properties from `GlobalContext` and `ThreadContext` as their own fields on the Data tab. - Reserved property names fill dedicated fields, for example `User`. - The exception type and stack trace when you pass an exception. *An exception in elmah.io, with the request and the stack trace.* #### Frequently asked questions ##### Can I keep my existing log4net appenders and add elmah.io? Yes. Add the elmah.io appender and an `appender-ref` for it under `root`, and keep your file, console and other appenders as they are. ##### How do I avoid sending debug messages? Set the level on `root`, or on a single logger. A level of `Info` sends information, warning, error and fatal messages, and `WARN` sends warnings and above. ##### Can I keep the API key and log ID in appSettings? Yes. Add `type="log4net.Util.PatternString"` to the `logId` and `apiKey` elements and use a value like `%appSetting{apiKey}`. ##### Does it work with ASP.NET Core? Yes. Install `Elmah.Io.Log4Net` and `Microsoft.Extensions.Logging.Log4Net.AspNetCore`, and call `builder.Logging.AddLog4Net()`. Add `Elmah.Io.AspNetCore.Log4Net` and `app.UseElmahIoLog4Net()` to include cookies, server variables and other HTTP details. ##### How do I log an exception? Pass the exception as the second argument, for example `log.Error("Error happening", ex)`. The exception type and stack trace are logged with the message. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required [Heartbeats](https://www.youtube.com/watch?v=zuadYPWOarc&autoplay=1&rel=0&showinfo=0) ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/log4net/#webpage", "url": "https://elmah.io/features/log4net/", "name": "log4net - Integrating log4net and elmah.io", "description": "log4net and elmah.io go hand in hand with the elmah.io appender for log4net. We even support structured logging, log levels and context properties.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Can I keep my existing log4net appenders and add elmah.io?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Add the elmah.io appender and an appender-ref for it under root, and keep your file, console and other appenders as they are." } }, { "@type": "Question", "name": "How do I avoid sending debug messages?", "acceptedAnswer": { "@type": "Answer", "text": "Set the level on root, or on a single logger. A level of Info sends information, warning, error and fatal messages, and WARN sends warnings and above." } }, { "@type": "Question", "name": "Can I keep the API key and log ID in appSettings?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Add type=\"log4net.Util.PatternString\" to the logId and apiKey elements and use a value like %appSetting{apiKey}." } }, { "@type": "Question", "name": "Does it work with ASP.NET Core?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Install Elmah.Io.Log4Net and Microsoft.Extensions.Logging.Log4Net.AspNetCore, and call builder.Logging.AddLog4Net(). Add Elmah.Io.AspNetCore.Log4Net and app.UseElmahIoLog4Net() to include cookies, server variables and other HTTP details." } }, { "@type": "Question", "name": "How do I log an exception?", "acceptedAnswer": { "@type": "Answer", "text": "Pass the exception as the second argument, for example log.Error(\"Error happening\", ex). The exception type and stack trace are logged with the message." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## Getting on top of those JavaScript errors Source: https://elmah.io/features/clientside-logging/ Summary: With Client-side logging, all JavaScript errors in your application, are automatically shipped to elmah.io. Start monitoring your client today. ### Cloud logging for JavaScript Getting on top of those JavaScript errors #### Web Application Monitoring Client-side logging brings the great error management platform from the server, directly into the user's browser. All uncaught **errors are automatically picked up** and enriched with detailed information about the environment. Everything is shipped to elmah.io, where notifications, searching, and managing errors just work. Errors can be stored in your existing or a dedicated client-side error log. In both scenarios both **email notifications** as well as our integrations to **[Slack](https://elmah.io/features/slack/) and [Microsoft Teams](https://elmah.io/features/microsoft-teams/)** works out of the box. You already set up your organization and team members, why configuring who needs notifications on client-side errors, requires a few mouse clicks only. Having both the client and the server's perspective will **reduce the time you need to spend on bug fixing**. Time that you will be able to spend on adding new features to your now zero-known-bugs product. #### Log events from the browser Chances are that you are already using some kind of logging framework like log4net, NLog, or Serilog on your server. Ever missed having the same possibilities on the client? With elmah.io's client-side logging, **logging everything from verbose to fatal messages**, is possible using our native JavaScript client. Log with the `Elmahio` logger using `verbose`, `debug`, `information`, `warning`, `error` and `fatal`, with or without a JavaScript `Error` object. Set `captureConsoleMinimumLevel` and the calls you already make to `console.error` and `console.warn` end up in elmah.io too. Using a framework? **React, Angular, Vue and SvelteKit** each have a step-by-step guide that shows where to hook the logger into the error handling of the framework: [React](https://docs.elmah.io/logging-to-elmah-io-from-react/), [Angular](https://docs.elmah.io/logging-to-elmah-io-from-angular/), [Vue](https://docs.elmah.io/logging-to-elmah-io-from-vue/) and [SvelteKit](https://docs.elmah.io/logging-to-elmah-io-from-sveltekit/). Everything starts with `npm install elmah.io.javascript`. #### Errors grouped, every instance kept Getting an overview of client-side errors, can be quite the pain. Take a look in the developer console when visiting your favorite websites and observe errors start to show. Browsers are experts in generating the same JavaScript errors over and over again. With elmah.io's Smart Grouping feature, **errors are bundled in groups**, showing you the unique errors happening and the severity of each error. Unlike similar products out there, elmah.io logs every single error. This **makes debugging a lot easier** since you can browse through each error instance within a group, rather than looking at a simple counter. #### Breadcrumbs Figuring out why an error happened sometimes requires more than simply looking at the stack trace logged with all errors. In some scenarios, re-creating an error requires you to carry out the exact same actions as the user causing the error. This is where Breadcrumbs comes in. elmah.io supports a powerful breadcrumb feature that will automatically pick up user actions and store them in memory. If an error is logged, the previous steps and actions are logged alongside the error. This creates the perfect overview of how the user caused an error to happen. Having the breadcrumbs will **shorten the time you need to spend** to find and fix JavaScript errors. #### See which device and browser failed With elmah.io's Device Insights, you will receive **detailed information** about the environment generating the error. Being able to see if an error is generated from a desktop or mobile browser and even the orientation of the screen, will make it a lot **easier to re-create an error**. Every message carries the URL of the page, the user agent, the language and the color depth of the screen, together with the cookies and query string of the request. That is often enough to see why an error only happens for some users. #### Stack traces you can read You are already following good practices by bundling and minifying your scripts. While browsers will love you for doing that, the errors generated by your application won't. Bundled and minified stack traces, make it impossible to find the actual line of code causing an error. With elmah.io for JavaScript, we automatically de-minify and de-bundle your stack traces, giving you a fair chance of spotting exactly where an error happened. By supporting de-minification through JavaScript Source Maps, we allow you to use whatever bundling and minification tool you like. No need to add additional tools to your build chain. JavaScript Source Maps can either be deployed with your web application or uploaded to elmah.io to avoid revealing information about your original JavaScript and/or to reduce the size of the deployed package. #### Let your AI agent read your JavaScript errors Connect Claude Code, Cursor, VS Code or Visual Studio to the elmah.io MCP server. Your agent can list new errors, read the stack trace and message details, check what changed after a deployment, and mark an error as fixed when you ask. Example conversation: **You:** Which JavaScript errors started after my latest deployment? **Agent:** One new error group since 3.2.0 was deployed 25 minutes ago: a TypeError in checkout.js, 64 occurrences, all in Safari. The stack trace points to line 112. In Claude Code, add the server with one command: ``` claude mcp add --transport http --client-id claudecode elmahio https://mcp.elmah.io/mcp ``` The MCP server is included on every plan and is currently in beta. [Set up the MCP server](https://docs.elmah.io/setup-mcp-server/). #### Frequently asked questions ##### Does it work with React, Angular, Vue and SvelteKit? Yes. elmah.io.javascript works with any framework. There are step-by-step guides for [React](https://docs.elmah.io/logging-to-elmah-io-from-react/), [Angular](https://docs.elmah.io/logging-to-elmah-io-from-angular/), [Vue](https://docs.elmah.io/logging-to-elmah-io-from-vue/) and [SvelteKit](https://docs.elmah.io/logging-to-elmah-io-from-sveltekit/). ##### Is it safe to put the API key in the browser? The key is visible in the browser, so use one with the `messages_write` permission only. It can then only send messages to your log, and you can revoke it if someone starts misusing it. ##### How do I get readable stack traces from minified code? Publish a source map next to your minified file, or upload it to elmah.io. elmah.io.javascript then translates the stack trace back to your own code. [Read about source maps](https://docs.elmah.io/sourcemaps/). ##### Can I log messages manually? Yes. Initialize the `Elmahio` logger in code and call methods like `logger.error(...)` or `logger.information(...)`. You can also capture `console` output with the `captureConsoleMinimumLevel` option. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/clientside-logging/#webpage", "url": "https://elmah.io/features/clientside-logging/", "name": "Client-side Logging - Getting on top of those JavaScript errors", "description": "With Client-side logging, all JavaScript errors in your application, are automatically shipped to elmah.io. Start monitoring your client today.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Does it work with React, Angular, Vue and SvelteKit?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. elmah.io.javascript works with any framework. There are step-by-step guides for React, Angular, Vue and SvelteKit." } }, { "@type": "Question", "name": "Is it safe to put the API key in the browser?", "acceptedAnswer": { "@type": "Answer", "text": "The key is visible in the browser, so use one with the messages_write permission only. It can then only send messages to your log, and you can revoke it if someone starts misusing it." } }, { "@type": "Question", "name": "How do I get readable stack traces from minified code?", "acceptedAnswer": { "@type": "Answer", "text": "Publish a source map next to your minified file, or upload it to elmah.io. elmah.io.javascript then translates the stack trace back to your own code. Read about source maps." } }, { "@type": "Question", "name": "Can I log messages manually?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Initialize the Elmahio logger in code and call methods like logger.error(...) or logger.information(...). You can also capture console output with the captureConsoleMinimumLevel option." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## Integrating Azure Functions and elmah.io Source: https://elmah.io/features/azure-functions/ Summary: Monitoring Azure Functions is easy using elmah.io. Add a single line of C# code and a bit of settings and error notifications start showing up. ### Cloud logging for Azure Functions elmah.io and Azure Functions go hand in hand! #### Native Integration With our native integration explicitly built for both Azure Functions and Isolated Azure Functions, monitoring if your Functions behaves nicely requires a few lines of code only. Errors are automatically sent to elmah.io's servers. You will experience the same rich notifications and apps support as with the website integrations. Monitoring errors in Functions is one thing. You also want to make sure that your HTTPS-based Functions are available for request and your timed and queue-based Functions are running. With elmah.io Uptime Monitoring, setting up heartbeats notifies you as soon as something isn't working as expected. #### Configure in C# or JSON All configuration is available through both C# and JSON. Using configuration, you can have an elmah.io log per Function or log multiple Functions to the same log. Utilize different log levels to log everything from debug messages to fatal errors. The range of configuration possibilities doesn't stop here. With Azure Functions v2 and forward, you can use elmah.io's integration with [Microsoft.Extensions.Logging](https://elmah.io/features/microsoft-extensions-logging/). Doing so opens a whole new world of possibilities like logging filters and dependency injection. #### Properties from every function Having a rich set of contextual information available is essential when trying to debug an error from your production environment. Having an error message and a stack trace only, as provided by alternative monitoring platforms, often isn't enough to figure out what went wrong. With elmah.io's native integration with Azure Functions, we automatically collect properties from FunctionFilterContext and any properties you have added. Make sure to pick a monitoring solution for your Azure Functions that goes the length of managing these things, to make sure that you are in a position to recover from production issues fast. #### Know that your functions run Monitoring errors in functions is one thing. Verifying that functions run and in the expected internal is just as important. With our native integration between Azure Functions and elmah.io [Heartbeats](https://elmah.io/features/heartbeats/), doing just that is easier than ever before. Set up an expected interval and grace period on elmah.io, include a few lines of code, and we'll take care of the rest. If your Azure Functions stops running or doesn't follow the expected schedule, we'll notify you through one or more methods of choice. #### Let your AI agent read your Azure Functions errors Connect Claude Code, Cursor, VS Code or Visual Studio to the elmah.io MCP server. Your agent can list new errors, read the stack trace and message details, check what changed after a deployment, and mark an error as fixed when you ask. Example conversation: **You:** Did any of my functions fail since the last deployment? **Agent:** Yes. OrderQueueTrigger threw a SqlException 18 times in the last hour. The stack trace points to OrderRepository.Save, line 52. In Claude Code, add the server with one command: ``` claude mcp add --transport http --client-id claudecode elmahio https://mcp.elmah.io/mcp ``` The MCP server is included on every plan and is currently in beta. [Set up the MCP server](https://docs.elmah.io/setup-mcp-server/). #### Set up in a few lines Install the NuGet package for Isolated Azure Functions and call `AddElmahIo` with your API key and log ID. ``` dotnet add package Elmah.Io.Functions.Isolated ``` ``` using Elmah.Io.Functions.Isolated; builder.AddElmahIo(options => { options.ApiKey = "API_KEY"; options.LogId = new Guid("LOG_ID"); }); ``` Uncaught exceptions are logged automatically. Keep the API key and log ID in your app settings instead of in code if you prefer, and use a different log per function app if you like. Using in-process Azure Functions? Install `Elmah.Io.Functions` instead. Your API key and log ID are shown on the install page when you sign up. [Read the full setup guide](https://docs.elmah.io/logging-to-elmah-io-from-isolated-azure-functions/). #### How it looks Here is what elmah.io logs for a failing function: - The exception, with its type and stack trace. - Properties from the function context and any properties you add. - Messages logged through `ILogger`, with log filtering to control what is sent. - Heartbeats, so you know when a timed or queue-based function stops running. *An exception in elmah.io, with the request and the stack trace.* #### Frequently asked questions ##### Does it work with both isolated and in-process Azure Functions? Yes. Use `Elmah.Io.Functions.Isolated` for the isolated worker model and `Elmah.Io.Functions` for in-process functions. ##### Can I log messages through ILogger? Yes. The integration with [Microsoft.Extensions.Logging](https://elmah.io/features/microsoft-extensions-logging/) lets you log through `ILogger` and use log filtering, so only the levels you choose are sent to elmah.io. ##### Can I keep the API key and log ID in app settings? Yes. Put `apiKey` and `logId` in your settings file, in environment variables or in your Azure app settings, and read them when you call `AddElmahIo`. ##### How do I know a timed function is still running? Use elmah.io Heartbeats. Set an expected interval and grace period on elmah.io, include a few lines of code in your function, and you are notified if it stops running or misses its schedule. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/azure-functions/#webpage", "url": "https://elmah.io/features/azure-functions/", "name": "Azure Functions - Integrating Azure Functions and elmah.io", "description": "Monitoring Azure Functions is easy using elmah.io. Add a single line of C# code and a bit of settings and error notifications start showing up.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Does it work with both isolated and in-process Azure Functions?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Use Elmah.Io.Functions.Isolated for the isolated worker model and Elmah.Io.Functions for in-process functions." } }, { "@type": "Question", "name": "Can I log messages through ILogger?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. The integration with Microsoft.Extensions.Logging lets you log through ILogger and use log filtering, so only the levels you choose are sent to elmah.io." } }, { "@type": "Question", "name": "Can I keep the API key and log ID in app settings?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Put apiKey and logId in your settings file, in environment variables or in your Azure app settings, and read them when you call AddElmahIo." } }, { "@type": "Question", "name": "How do I know a timed function is still running?", "acceptedAnswer": { "@type": "Answer", "text": "Use elmah.io Heartbeats. Set an expected interval and grace period on elmah.io, include a few lines of code in your function, and you are notified if it stops running or misses its schedule." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## Integrating Umbraco and elmah.io Source: https://elmah.io/features/umbraco/ Summary: Umbraco and elmah.io go hand in hand with the elmah.io integration for Umbraco. Be notified when errors happen on your on-premise or Cloud installation. ### Cloud logging for Umbraco elmah.io and Umbraco go hand in hand! #### Umbraco logs in the Cloud elmah.io automatically logs all uncaught exceptions on your on-premise and Umbraco Cloud installation. Sleep well at night knowing that we got you back when something goes wrong. When Umbraco starts logging errors in elmah.io we provide you with detailed information about the failing requests like the server variables and form post values. Using the elmah.io App Store, getting notifications on [Slack](https://elmah.io/features/slack/) or [Microsoft Teams](https://elmah.io/features/microsoft-teams/) requires only a few mouse clicks. Using an issue tracker? elmah.io integrates with a range of options like Jira and [GitHub](https://elmah.io/features/github/). Why not have elmah.io create issues when new errors are introduced? #### Serilog Integration Umbraco logs through Serilog, and elmah.io's Serilog sink picks it up. Not only uncaught exceptions get logged to elmah.io. Everything happening inside Umbraco gets indexed and made searchable through the UI. When needing to debug an error happening in production, having the trace of what happened inside Umbraco will make it faster and a lot easier to figure out what went wrong. Reducing the time before your website is back in an operational state and free your developers to create customer value. The current package supports Umbraco 10 and newer. Running an older site? Umbraco 7 and 8 are supported through older versions of the package, and the documentation has the instructions for each version. ###### Trusted by Umbraco developers world-wide #### Quick Fixes elmah.io provides quick fixes developed especially for Umbraco. With elmah.io you have the perfect overview of your Umbraco installation. But wait, there's more. We analyzed thousands of Umbraco errors and found a set of common log messages in Umbraco. With this set of data, we provide you with links to the best and most relevant help articles from the Umbraco documentation. #### Uptime Monitoring & Heartbeats Logging errors is one aspect of securing a well-working website. But it doesn't solve everything. You also need to make sure that users can reach your website and maybe even from different parts of the world. With elmah.io Uptime Monitoring, we ping your Umbraco sites from up to 5 different regions every 5 minutes. If your site is not accessible, an error is logged in your error log. This will trigger all of the notification rules and app integrations already configured on your account. elmah.io Heartbeats is a feature to monitor the internal state of your website that is not visible from the public web. The elmah.io package for Umbraco support native integration between Umbraco's health check feature and elmah.io Heartbeats. Publish health checks directly to elmah.io and get a notification as soon as one or more features inside Umbraco starts complaining. #### Let your AI agent read your Umbraco errors Connect Claude Code, Cursor, VS Code or Visual Studio to the elmah.io MCP server. Your agent can list new errors, read the stack trace and message details, check what changed after a deployment, and mark an error as fixed once you have shipped the change. Example conversation: **You:** Which errors are new on the live site since we deployed to Umbraco Cloud? **Agent:** Two new errors since the deployment. A NullReferenceException in ProductListViewComponent.Invoke, 6 occurrences on the product pages, and a spike of 404 responses on old media URLs. I can open the view component and suggest a fix. In Claude Code, add the server with one command: ``` claude mcp add --transport http --client-id claudecode elmahio https://mcp.elmah.io/mcp ``` The MCP server is included on every plan and is currently in beta. [Set up the MCP server](https://docs.elmah.io/setup-mcp-server/). #### Set up in a few lines Install the NuGet package, add elmah.io to `Program.cs` with your API key and log ID, and add the Serilog sink to also log everything Umbraco writes to its log. ``` dotnet add package Elmah.Io.Umbraco ``` ``` builder.Services.AddElmahIo(options => { options.ApiKey = "API_KEY"; options.LogId = new Guid("LOG_ID"); }); WebApplication app = builder.Build(); await app.BootUmbracoAsync(); app.UseElmahIo(); app.UseUmbraco() // ... ``` ``` { "Serilog": { "WriteTo": [ { "Name": "ElmahIo", "Args": { "apiKey": "API_KEY", "logId": "LOG_ID" } } ] } } ``` Call `UseElmahIo` after the middleware that handles exceptions and authentication, and before `UseUmbraco`. The example is for Umbraco 13 and newer. Umbraco 10 to 12 use `Startup.cs`, and the documentation has the steps for those and for Umbraco 8 and 7. Your API key and log ID are shown on the install page when you sign up. [Read the full setup guide](https://docs.elmah.io/logging-to-elmah-io-from-umbraco/). #### How it looks Here is what elmah.io logs from an Umbraco site: - Uncaught exceptions, with the request, server variables, form values and the stack trace. - The messages Umbraco writes to its Serilog log, when the sink is configured. - Umbraco health check results as heartbeats, with a notification when a check fails. - Links to relevant help articles from the Umbraco documentation for common errors. *An exception in elmah.io, with the request and the stack trace.* #### Frequently asked questions ##### Which Umbraco versions are supported? The current package supports Umbraco 10 and newer. Umbraco 8 and 7 are supported through older versions of the package. The documentation has the setup for each version. ##### Does it work on Umbraco Cloud? Yes. Clone your Umbraco Cloud project, install and configure elmah.io locally, and push the changes. Config transforms let each environment log to its own elmah.io log. ##### Do I need to set up the Serilog sink? Not to log uncaught exceptions. Add the Serilog configuration to `appsettings.json` to also send everything else Umbraco logs. ##### Can I send Umbraco health checks to elmah.io? Yes. The package connects the health checks of Umbraco to elmah.io Heartbeats, so you are notified when a check starts failing. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required [Heartbeats](https://www.youtube.com/watch?v=TT1LzsKBtTw&autoplay=1&rel=0&showinfo=0) ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/features/umbraco/#webpage", "url": "https://elmah.io/features/umbraco/", "name": "Umbraco - Integrating Umbraco and elmah.io", "description": "Umbraco and elmah.io go hand in hand with the elmah.io integration for Umbraco. Be notified when errors happen on your on-premise or Cloud installation.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Which Umbraco versions are supported?", "acceptedAnswer": { "@type": "Answer", "text": "The current package supports Umbraco 10 and newer. Umbraco 8 and 7 are supported through older versions of the package. The documentation has the setup for each version." } }, { "@type": "Question", "name": "Does it work on Umbraco Cloud?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Clone your Umbraco Cloud project, install and configure elmah.io locally, and push the changes. Config transforms let each environment log to its own elmah.io log." } }, { "@type": "Question", "name": "Do I need to set up the Serilog sink?", "acceptedAnswer": { "@type": "Answer", "text": "Not to log uncaught exceptions. Add the Serilog configuration to appsettings.json to also send everything else Umbraco logs." } }, { "@type": "Question", "name": "Can I send Umbraco health checks to elmah.io?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. The package connects the health checks of Umbraco to elmah.io Heartbeats, so you are notified when a check starts failing." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## DevOps for .NET applications Source: https://elmah.io/devops/ Summary: Mark every release from your CI pipeline, see which deployment introduced new errors, and let an AI agent watch production after each deploy. Free trial. ### DevOps for .NET applications Mark each release from CI, see new errors per deployment, and have an agent watch production for regressions while you move on. #### What is DevOps? DevOps is a way of working where the people who build software also take part in running it. Developers and operations share responsibility for the whole lifecycle, from design and deployment to monitoring and maintenance. Many companies used to split this work between teams. One team built the features, another hosted the system, and a third tested everything before a release. Every handoff added waiting time, and a bug found in production could travel between teams before anyone fixed it. With DevOps, the team that ships a feature is also responsible for it in production. That does not mean everyone needs the same skills, and different strengths and interests are still a good thing. What changes is that everyone cares about how the product runs. A successful DevOps setup tends to give you: - Better responsiveness to change - Efficient operations - Fewer bottlenecks Monitoring is what ties it together. A team that deploys often needs to know quickly if a release made things worse, and it needs that information where it already works. That is where elmah.io fits in. #### Mark every deployment Add one step to your pipeline and elmah.io records the version of every release. The [deployment tracking](https://elmah.io/features/deployment-tracking/) overview then shows when you released and how each version performed, so you can see which release caused more errors than the one before it. There are guides for [GitHub Actions](https://docs.elmah.io/create-deployments-from-github-actions/), [Azure Pipelines](https://docs.elmah.io/create-deployments-from-azure-devops-pipelines/), [GitLab](https://docs.elmah.io/create-deployments-from-gitlab-pipelines/), [Bitbucket Pipelines](https://docs.elmah.io/create-deployments-from-bitbucket-pipelines/), [Octopus Deploy](https://docs.elmah.io/create-deployments-from-octopus-deploy/), [Atlassian Bamboo](https://docs.elmah.io/create-deployments-from-atlassian-bamboo/), [Kudu](https://docs.elmah.io/create-deployments-from-kudu/), [PowerShell](https://docs.elmah.io/create-deployments-from-powershell/) and the elmah.io CLI. Anything else can call the REST API. #### Catch regressions fast The New Errors metric on each deployment shows the errors that did not exist before the release. When a bug is introduced in a new version, elmah.io notifies you right away, through email, [Slack](https://elmah.io/features/slack/), [Microsoft Teams](https://elmah.io/features/microsoft-teams/) or any of the other integrations in the [App Store](https://elmah.io/features/appstore/). You do not have to watch a dashboard after every release. Notifications for new errors come to you, and each error links to the stack trace and the request that caused it. #### Let an agent watch production after each deploy With the elmah.io AI Plugin for Claude Code or Cursor, you can ask for the deployment watchdog when a release goes out. It is a background agent that watches for regressions, alerts you right away on fatal errors or downtime, and reports HEALTHY or UNHEALTHY once enough data has come in. Example conversation: **You:** Start the deployment watchdog for version 2.4.1. **Agent:** Watching version 2.4.1. I will alert you right away on fatal errors or downtime. So far there are no new errors and all uptime checks are green. The plugin also has a post-deployment check skill, if you would rather ask for a one-off health check after shipping. Install the plugin in Claude Code with two commands: ``` claude plugin marketplace add elmahio/elmah-io-ai-plugin claude plugin install elmah-io@elmah-io ``` The plugin and the MCP server are included on every plan and are currently in beta. [Read about the AI Plugin](https://docs.elmah.io/elmah-io-ai-plugin/). #### Cover what does not throw A scheduled job or a function that stops running does not log an error. [Heartbeats](https://elmah.io/features/heartbeats/) notify you when a check-in is missed, and [uptime monitoring](https://elmah.io/features/uptime-monitoring/) pings your sites from up to 5 regions, every 5 minutes, and logs an error when a site is down. Both trigger the same notifications and integrations as your application errors, so one setup covers the lot. #### From the terminal and from CI The elmah.io CLI is a .NET tool for searching, tailing and exporting messages and for creating deployments. Use it on your machine or in scripts: `dotnet tool install --global Elmah.Io.Cli`. Scripts and pipelines can also call the MCP server with an API key as a Bearer token, for example to check for new errors after a release. [Read about the CLI](https://docs.elmah.io/cli-overview/) or [how to call the MCP server with an API key](https://docs.elmah.io/call-mcp-server-using-api-key/). #### Frequently asked questions ##### Which CI/CD tools work with deployment tracking? GitHub Actions, Azure Pipelines, GitLab, Bitbucket Pipelines, Octopus Deploy, Atlassian Bamboo, Kudu and PowerShell have guides. The elmah.io CLI and the REST API cover everything else. ##### Which permission does the pipeline need? An API key with the *Deployments | Write* permission only. It cannot read your errors, so it is safe to keep in your pipeline secrets. ##### Is deployment tracking included in the trial? Yes. Deployment tracking, uptime monitoring and heartbeats are part of the free 21-day trial. ##### What does the deployment watchdog do? It is an agent in the elmah.io AI Plugin. After a release it watches for new errors and downtime, alerts you right away on fatal errors or an outage, and reports HEALTHY or UNHEALTHY once it has seen enough data. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/devops/#webpage", "url": "https://elmah.io/devops/", "name": "Deployment Tracking and Error Monitoring for .NET DevOps", "description": "Mark every release from your CI pipeline, see which deployment introduced new errors, and let an AI agent watch production after each deploy. Free trial.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Which CI/CD tools work with deployment tracking?", "acceptedAnswer": { "@type": "Answer", "text": "GitHub Actions, Azure Pipelines, GitLab, Bitbucket Pipelines, Octopus Deploy, Atlassian Bamboo, Kudu and PowerShell have guides. The elmah.io CLI and the REST API cover everything else." } }, { "@type": "Question", "name": "Which permission does the pipeline need?", "acceptedAnswer": { "@type": "Answer", "text": "An API key with the Deployments | Write permission only. It cannot read your errors, so it is safe to keep in your pipeline secrets." } }, { "@type": "Question", "name": "Is deployment tracking included in the trial?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Deployment tracking, uptime monitoring and heartbeats are part of the free 21-day trial." } }, { "@type": "Question", "name": "What does the deployment watchdog do?", "acceptedAnswer": { "@type": "Answer", "text": "It is an agent in the elmah.io AI Plugin. After a release it watches for new errors and downtime, alerts you right away on fatal errors or an outage, and reports HEALTHY or UNHEALTHY once it has seen enough data." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## elmah.io for CTOs Source: https://elmah.io/for-ctos/ Summary: Flat-priced error monitoring for .NET teams, with control over AI access to production data: opt-in Extended Access, your own model key, or hosted models. ### Error monitoring for CTOs, with AI access you control Flat monthly pricing. Your developers get errors in their dashboard and their AI tools. You decide what any AI model is allowed to see. #### The perfect overview of your applications Do you ever feel like you are missing an overview of the current quality of your applications, instead of just waiting for customers to report bugs? With the elmah.io dashboard, your team can see the errors introduced in your software, and you can follow the quality of each release. By combining severity and frequency, we help you and your team prioritize what to fix first. In our experience, we **uncover previously unknown errors** when you integrate with elmah.io. Using [deployment tracking](https://elmah.io/features/deployment-tracking/), we monitor each deployment of your software. When a bug is introduced in a new version, we **notify you instantly**. Introducing zero bugs is impossible, but finding them before your customers do is not. #### Predictable cost Plans are flat monthly prices, and you pay the same no matter how many servers, containers or CPUs you run. Business+ and Enterprise include unlimited users, so growing the team does not change the bill. Start with the free 21-day trial, without a credit card. The plans and what they include are on the [pricing page](https://elmah.io/pricing/). #### You decide what AI can see AI is useful for fixing errors, and your logs can be sensitive. These are the controls you have: - **Off by default.** Bugster, the AI assistant in elmah.io, can only read log data after an admin turns on Extended Access. Source code and breadcrumbs are separate toggles. - **Bring your own model, or use ours.** On Business and Business+, Bugster uses your own OpenAI, Gemini or Claude API key. On Enterprise, you can pick a model hosted by elmah.io, so log data does not leave our data center. - **Your logs are not used for training.** elmah.io does not use your log data to train Bugster. With your own key, the settings of your provider apply, and we recommend turning off model improvement there. - **Scoped access for agents.** Developers connect their AI tools to the MCP server by signing in with their own elmah.io account. Scripts and pipelines use API keys, with the permissions you give each key. [Read how Bugster is configured](https://docs.elmah.io/how-to-configure-and-use-bugster/) and [how the MCP server is set up](https://docs.elmah.io/setup-mcp-server/). #### elmah.io in numbers ###### Global elmah.io is used by more than 8,000 developers from 70 countries. ###### Tested at scale We have collected more than a billion errors from our customers. ###### Satisfied Users With a NPS (Net Promoter Score) above 70, our customers are happy with elmah.io. ###### Reduce Error Error count decreases on average 80% when customers integrate with us. #### Securely store errors in the Cloud By using the Cloud to store your errors, you no longer need a budget for maintaining a local logging infrastructure. Installing and maintaining software like SQL Server and Elasticsearch is time consuming and expensive, and with elmah.io we take care of it for you. For your security team: - Data is stored in Microsoft Azure in the United States, in private, isolated networks with DDoS protection and daily backups. - An external partner runs penetration tests every month. - Two-factor authentication works with all sign-in methods. - API keys are scoped, so a key can be limited to for example writing messages or deployments. - We are PCI compliant, and a copy of our SAQ A is available on request. A dedicated GDPR commitment document describes the personal data we collect and how we handle it. Read more on the [security page](https://elmah.io/security/). #### What your team gets Developers get errors in the dashboard, on [Slack](https://elmah.io/features/slack/) and [Microsoft Teams](https://elmah.io/features/microsoft-teams/), or in an issue tracker like [GitHub](https://elmah.io/features/github/) or Jira. They can also search from the terminal with the CLI, or ask an AI agent through the MCP server. Beyond errors, the same account covers [uptime monitoring](https://elmah.io/features/uptime-monitoring/), [heartbeats](https://elmah.io/features/heartbeats/) for scheduled jobs and [deployment tracking](https://elmah.io/features/deployment-tracking/). #### Frequently asked questions ##### Where is our data stored? In Microsoft Azure in the United States. ##### Can we keep AI away from our log data? Bugster cannot read log data until an admin turns on Extended Access, which is off by default. Developers connect AI tools to the MCP server themselves, with their own sign-in. ##### Do you train models on our data? No, elmah.io does not use your log data to train Bugster. When you use your own model key, the data policy of that provider applies. ##### How often do you run penetration tests? Every month, by an external partner. ##### How is elmah.io priced? Flat monthly plans, with unlimited users on Business+ and Enterprise. See the [pricing page](https://elmah.io/pricing/) for the current prices, and start with the free 21-day trial. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/for-ctos/#webpage", "url": "https://elmah.io/for-ctos/", "name": "elmah.io for CTOs: Error Monitoring Your Team Controls", "description": "Flat-priced error monitoring for .NET teams, with control over AI access to production data: opt-in Extended Access, your own model key, or hosted models.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Where is our data stored?", "acceptedAnswer": { "@type": "Answer", "text": "In Microsoft Azure in the United States." } }, { "@type": "Question", "name": "Can we keep AI away from our log data?", "acceptedAnswer": { "@type": "Answer", "text": "Bugster cannot read log data until an admin turns on Extended Access, which is off by default. Developers connect AI tools to the MCP server themselves, with their own sign-in." } }, { "@type": "Question", "name": "Do you train models on our data?", "acceptedAnswer": { "@type": "Answer", "text": "No, elmah.io does not use your log data to train Bugster. When you use your own model key, the data policy of that provider applies." } }, { "@type": "Question", "name": "How often do you run penetration tests?", "acceptedAnswer": { "@type": "Answer", "text": "Every month, by an external partner." } }, { "@type": "Question", "name": "How is elmah.io priced?", "acceptedAnswer": { "@type": "Answer", "text": "Flat monthly plans, with unlimited users on Business+ and Enterprise. See the pricing page for the current prices, and start with the free 21-day trial." } } ] } ``` --- ## Follow an error across your services Source: https://elmah.io/microservices/ Summary: Follow one failing request across your .NET services. Correlation IDs from Activity, filtering per service, heartbeats for workers, and AI agent access. ### Follow an error across your .NET microservices Each service logs to elmah.io with the same correlation ID, so the API call, the queue message and the worker crash show up as one story. #### What is Microservices? The term 'Microservices' covers an architectural style of building applications that has gained a lot of focus in recent years. A lot of the thoughts behind microservices were born from experiences with Service Oriented Architecture (SOA), which was the next big thing a decade ago. The idea with microservices is to split an application into multiple independent deployable services, each with a single concern. Rather than building, maintaining and deploying an application as a monolith, microservices with a predefined interface can evolve or be easily replaced, without affecting the remaining parts of the application. A microservice can communicate with other microservices over the network. Communication is often based on REST and/or through a queue/service bus. A microservice architecture introduces both advantages and disadvantages. Some of the advantages of using microservices are: - Separation of concern - Easier to experiment with new technologies - Faster development and deployment times - Possible to outsource service development #### One log for the whole system Let every service log to the same elmah.io log and set the `Application` property on each message to the name of the service. You get an overview of all your microservices in the same dashboard, and you can filter down to a single service when you need to. You can create as many logs as you need, for example to give a team its own notifications and access control. Correlation works within a log, so services that need to be followed together should share one. #### Correlation in one line Install the `Elmah.Io.Client.Extensions.Correlation` package and call `WithCorrelationIdFromActivity`. Every message then picks up the trace ID of the current activity, and messages from different services that handled the same request share an ID you can filter on. The ASP.NET Core integration also reads the `traceparent` header of incoming requests, so a request that travels through your services keeps its trace ID. The API call, the queue message and the worker crash end up as one story. #### Notifications that fit your teams Notifications go out through email, [Slack](https://elmah.io/features/slack/), [Microsoft Teams](https://elmah.io/features/microsoft-teams/) and more. Want to send Slack notifications to the core team and mails to third-party vendors? Set up rules per log, and the right people hear about the right errors. Pay the same low price, no matter how many servers and CPUs you use. #### Know when workers stop A worker that stops consuming messages does not log an error. [Heartbeats](https://elmah.io/features/heartbeats/) notify you when a background service fails to check in, and the [documentation shows how](https://docs.elmah.io/logging-heartbeats-from-net-core-worker-services/) to add them to .NET worker services. [Uptime monitoring](https://elmah.io/features/uptime-monitoring/) covers the services that listen on HTTP. #### Let your AI agent follow an error across services Connect Claude Code, Cursor, VS Code or Visual Studio to the elmah.io MCP server. Each message the agent reads includes the name of the service and the correlation ID, so it can follow one request from service to service. Example conversation: **You:** Show the latest errors from Orders.Api, then find the other messages with the same correlation ID. **Agent:** The latest error is an HttpRequestException calling Payments.Api. The same correlation ID shows a timeout in Payments.Api and a failed message in Orders.Worker a few seconds later. The timeout came first. In Claude Code, add the server with one command: ``` claude mcp add --transport http --client-id claudecode elmahio https://mcp.elmah.io/mcp ``` The MCP server is included on every plan and is currently in beta. [Set up the MCP server](https://docs.elmah.io/setup-mcp-server/). #### We run on it ourselves elmah.io itself runs as dozens of .NET services and Azure Functions, and all of them log to elmah.io. When something fails in our own system, we use the same notifications, correlation and heartbeats that we describe on this page. #### Frequently asked questions ##### Do all services need to log to the same log? For correlation, yes. Correlation currently works within a single log, so use the same log ID everywhere and set the application name on each service to tell the services apart. ##### How are messages correlated? Through the `CorrelationId` property on each message. The correlation package sets it from the current activity, and you can set it yourself from a header or a message ID if you use another scheme. ##### Can I create one log for each service? Yes. You can create as many logs as you need. Messages in different logs are not correlated with each other, so choose this when separate access and notifications matter more than following requests. ##### Does the price depend on the number of services? No. You pay the same no matter how many servers and CPUs you use. The plan decides how many messages you can log. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/microservices/#webpage", "url": "https://elmah.io/microservices/", "name": ".NET Microservices Error Logging with Correlation IDs", "description": "Follow one failing request across your .NET services. Correlation IDs from Activity, filtering per service, heartbeats for workers, and AI agent access.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Do all services need to log to the same log?", "acceptedAnswer": { "@type": "Answer", "text": "For correlation, yes. Correlation currently works within a single log, so use the same log ID everywhere and set the application name on each service to tell the services apart." } }, { "@type": "Question", "name": "How are messages correlated?", "acceptedAnswer": { "@type": "Answer", "text": "Through the CorrelationId property on each message. The correlation package sets it from the current activity, and you can set it yourself from a header or a message ID if you use another scheme." } }, { "@type": "Question", "name": "Can I create one log for each service?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. You can create as many logs as you need. Messages in different logs are not correlated with each other, so choose this when separate access and notifications matter more than following requests." } }, { "@type": "Question", "name": "Does the price depend on the number of services?", "acceptedAnswer": { "@type": "Answer", "text": "No. You pay the same no matter how many servers and CPUs you use. The plan decides how many messages you can log." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## Cloud logging for .NET Source: https://elmah.io/cloud-logging/ Summary: A practical guide to cloud logging for .NET: which log levels to send, how it compares to files and self-hosted tools, and setup for Serilog, NLog and more. ### Cloud logging for .NET Stop SSH-ing into servers to read log files. Send warnings and errors from every app to one hosted log, and read them from the dashboard, your terminal or your AI agent. #### What is Cloud Logging? In recent years, outsourcing common features like authentication, payment and logging has gained a lot of traction. With Software as a Service (SaaS) and Cloud hosting like [Azure](https://elmah.io/azure-error-logging/), more and more companies trust Cloud providers to implement features previously handled inside the company. Cloud Logging is the practice of sending out log statements to the Cloud. Setting up a SQL Server or similar may sound like a small task, but handling large amounts of data and making them searchable definitely is not. To help companies overcome the challenges of storing log data, a lot of providers have emerged. When evaluating Cloud Logging providers, it's important to understand the difference between the various options. While some providers focus on storing and indexing massive amounts of log messages, others (like us) implement features on top of the data, providing systems generating dashboards, allowing error management and more. Some of the many benefits of Cloud logging: - Outsource hosting to someone else - Use the Cloud to scale - Combine log messages from many sources - Fast indexing and searching logs - Don't need to implement error management features yourself #### Files, self-hosted or hosted? Log files work until you have more than one server. These are the usual options for .NET: - **Files on the servers.** Simple, but you need to sign in to every server to search, and nobody is told when something fails. - **Self-hosted Elasticsearch or Seq.** Fixes search, but now you run a database that has to scale, be backed up and be kept up to date. - **A hosted log platform.** Takes the database off your hands, and is built to store and index large amounts of log messages. - **A hosted error platform like elmah.io.** Also off your hands, and it adds the features that sit on top of the data: it groups errors, tells you about new ones, and links them to deployments. elmah.io is focused on errors and important log messages. It is not a full telemetry platform, so it pairs well with an APM tool if you need traces. #### What to send to the cloud Send warnings and above from every application. That is where the signal is, and it keeps your message quota for what you will act on. Keep debug and information messages in the console or a local file. Your logging code does not change. Add the elmah.io target, sink or appender next to the ones you have, and set the minimum level on it. #### Who reads your logs Your team reads them in the dashboard, and gets [notifications](https://elmah.io/features/notifications/) by email, [Slack](https://elmah.io/features/slack/) or [Microsoft Teams](https://elmah.io/features/microsoft-teams/) when a new error shows up. The CLI lets you search and tail from the terminal. In 2026, the first reader of a production error is often an AI coding agent. elmah.io exposes your logs through an MCP server, so Claude Code, Cursor or Copilot in VS Code can pull the stack trace while you are already in the code. #### Native integrations for .NET Pick the framework you use, and add one package: - [ASP.NET Core](https://elmah.io/features/asp-net-core/) and [Blazor](https://elmah.io/features/blazor-error-logging/) for web applications - [Serilog](https://elmah.io/features/serilog/), [NLog](https://elmah.io/features/nlog/) and [log4net](https://elmah.io/features/log4net/) for logging frameworks, plus [Microsoft.Extensions.Logging](https://elmah.io/features/microsoft-extensions-logging/) - [OpenTelemetry](https://elmah.io/features/opentelemetry/) for logs sent through OpenTelemetry - [Azure Functions](https://elmah.io/features/azure-functions/) and [client-side JavaScript](https://elmah.io/features/clientside-logging/) - [Umbraco](https://elmah.io/features/umbraco/), for Umbraco sites on-premises and in Umbraco Cloud elmah.io started as an error log for ELMAH, and logging uncaught errors from ELMAH is still supported. [The documentation](https://docs.elmah.io/) lists everything else. #### Frequently asked questions ##### What should I send to cloud logging? Warnings, errors and fatal messages from every application. Add information messages only for events you want to search later. Debug and trace messages are better kept local. ##### Do I have to change my logging code? No, you add an elmah.io target, sink or appender to your logging configuration, and keep the rest of your code and your other targets. ##### Can I keep writing log files too? Yes. Logging frameworks write to as many targets as you like, so you can keep a file or console target and add elmah.io. ##### How is it different from a log platform like Elasticsearch or Seq? A log platform stores and indexes messages for you to search. elmah.io does that too, and adds error management on top: grouping, new error detection, notifications, deployment tracking, uptime and heartbeats. ##### Can my AI coding agent read these errors? Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta. Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/cloud-logging/#webpage", "url": "https://elmah.io/cloud-logging/", "name": ".NET Cloud Logging: What to Send and How to Set It Up", "description": "A practical guide to cloud logging for .NET: which log levels to send, how it compares to files and self-hosted tools, and setup for Serilog, NLog and more.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "What should I send to cloud logging?", "acceptedAnswer": { "@type": "Answer", "text": "Warnings, errors and fatal messages from every application. Add information messages only for events you want to search later. Debug and trace messages are better kept local." } }, { "@type": "Question", "name": "Do I have to change my logging code?", "acceptedAnswer": { "@type": "Answer", "text": "No, you add an elmah.io target, sink or appender to your logging configuration, and keep the rest of your code and your other targets." } }, { "@type": "Question", "name": "Can I keep writing log files too?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Logging frameworks write to as many targets as you like, so you can keep a file or console target and add elmah.io." } }, { "@type": "Question", "name": "How is it different from a log platform like Elasticsearch or Seq?", "acceptedAnswer": { "@type": "Answer", "text": "A log platform stores and indexes messages for you to search. elmah.io does that too, and adds error management on top: grouping, new error detection, notifications, deployment tracking, uptime and heartbeats." } }, { "@type": "Question", "name": "Can my AI coding agent read these errors?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Connect the elmah.io MCP server to Claude Code, Cursor, VS Code or Visual Studio. It is included on every plan and is currently in beta." } } ] } ``` --- ## elmah.io Alternatives - See how elmah.io compares to the rest Source: https://elmah.io/alternatives/ Summary: Wondering if elmah.io is the right decision for you? We have got you covered with this comprehensive guide. Learn how elmah.io compares to others. ### elmah.io alternatives See how elmah.io compares to the rest #### Welcome to elmah.io Welcome to elmah.io. You probably ended up on this page while searching for differences between elmah.io and similar products. Or maybe you are in the process of finding the best Error Monitoring solution for your websites and services. To help you in this process we have created these pages to highlight some of the commonly used alternatives to elmah.io and what differentiates elmah.io from each of them. A quick disclaimer before we start digging into the details. We have all seen these types of pages which exist only to highlight all of the downsides of alternative products. While we would like you to pick elmah.io for your error monitoring needs, we don't want users signing up with the wrong expectations. Disappointed users quickly churn and tell their friends how elmah.io didn't meet their needs. These pages are our attempt to paint an honest picture of both elmah.io's upsides and downsides compared to the alternatives. With that out of the way, Let's get started! #### Other players Let's start by looking at some of the major products trying to solve the same challenges as elmah.io. These are all products that we have heard some of our existing users have switched from to elmah.io or the other way around. | | elmah.io | [Airbrake](https://elmah.io/alternatives/elmah-io-vs-airbrake/) | [Raygun](https://elmah.io/alternatives/elmah-io-vs-raygun/) | [Rollbar](https://elmah.io/alternatives/elmah-io-vs-rollbar/) | [Sentry](https://elmah.io/alternatives/elmah-io-vs-sentry/) | [Stackify\*](https://elmah.io/alternatives/elmah-io-vs-stackify/) | | --- | --- | --- | --- | --- | --- | --- | | Error Logging | | | | | | | | [Clientside error logging](https://elmah.io/features/clientside-logging/) | | | | | | | | [Deployment tracking](https://elmah.io/features/deployment-tracking/) | | | | | | | | [Uptime monitoring](https://elmah.io/features/uptime-monitoring/) | | | | | \*\* | | | [Heartbeats](https://elmah.io/features/heartbeats/) | | | | | \*\* | | | [SSL, domain and security checks](https://elmah.io/features/uptime-monitoring/) | | | | | | | | [Anomaly Detection (ML)](https://elmah.io/ai/anomaly-and-bot-detection/) | | | | | | | | [MCP Server](https://elmah.io/features/#ai) | | | | | | | | Performance Monitoring | | | | | | | | Cloud-hosted | | | | | | | | Self-hosted | | | | | | | | Built for .NET\*\*\* | | | | | | | | [Browse errors in Visual Studio](https://elmah.io/features/appstore/) | | | | | | | | Price/mo (annual billing) | $17 - $269 | $17 - $299 | $40 - $400 | Needs quote | $26 - $637 | Not published | Prices shown are monthly rates when billed annually, except Airbrake's high end ($299) which is its monthly billing rate. The high end matches volume where possible: elmah.io's Enterprise plan at 1,000,000 messages/mo against each competitor's equivalent tier, feature-matched for uptime/heartbeats add-ons where relevant (see each comparison page for details). \* Stackify Retrace reaches end of life on March 31, 2027 and is in maintenance mode - no new features and no published pricing. \*\* Sentry includes 1 uptime monitor and 1 cron monitor. Each additional monitor costs extra: $1.00 per uptime monitor and $0.78 per cron monitor. \*\*\* Built for .NET: elmah.io only supports .NET and JavaScript, so the product is shaped around them. Stack traces, the Exception Inspector for inner exceptions and exception data, and the integrations for ASP.NET Core, Serilog, NLog, and log4net are all built with .NET in mind. The other tools are general-purpose platforms that support many languages. #### FAQ ###### Why isn't elmah.io free? Like most of the alternatives, we offer a free trial. You can sign up and try out elmah.io without ever needing to input a credit card. We believe that software should be something you pay for. On the list above, elmah.io is the only bootstrapped company. This means that the funding we get is when people sign up and pay for elmah.io. This gives us the best control over the direction we want to go and we don't have any investors to constantly keep happy by increasing prices or milking customers for more money. ###### Does elmah.io support other languages than .NET and JavaScript? We have decided to become the best error logging and uptime monitoring service for Microsoft .NET developers. This means that we focus on Microsoft's stack only. By focusing on .NET on the server and JavaScript on the client only, we can keep our focus on making the deepest integration into this ecosystem out there. Where most of the alternatives offer a simple .NET client and let you do the actual integration, we have native integrations with all major .NET web and logging frameworks. In other words, if you need to monitor a backend in Go or Java, elmah.io is not the best choice for you. ###### What if I need both error logging and performance monitoring? While we have great support for cloud-based error logging and monitoring we don't offer any application performance monitoring (APM) tools. This may change at some point, but for now, we have focused our time on error logging, uptime monitoring, deployment tracking, and heartbeats monitoring. We believe in picking the best tool for the job. elmah.io works together with all major APM tools out there, making it possible to use elmah.io's powerful platform for error monitoring and something else for APM. ###### What is the difference between ELMAH and elmah.io? ELMAH stands for Error Logging Modules and Handlers for ASP.NET and is the original and very successful open source project for logging errors from .NET web applications. elmah.io is a cloud service offering logging to the cloud from every web framework already supporting ELMAH. More details here: [ELMAH and elmah.io differences](https://docs.elmah.io/elmah-and-elmah-io-differences/). ###### Is elmah.io developed by the guys developing ELMAH? No. A group of talented developers are maintaining and doing new development of ELMAH. elmah.io is maintained by us, though we love to help out on the ELMAH framework as well. Lucky for us, the maintainers behind ELMAH have been kind enough to send us multiple pull requests on the parts of elmah.io which are open source. ###### Is elmah.io open source? Yes and no. The persistence part and the elmah.io website are not open source. We open sourced a couple of the components we have written in order to make elmah.io work, as well as our NuGet packages for logging errors to elmah.io. A lot of the internals of elmah.io are based on open source and we love making contributions to other projects. #### Here's what our customers say Don't just take our word for it. Here's what some of our users have to say about elmah.io: "elmah.io's visuals and robust metrics give us invaluable insight into the general health of our systems" ###### Armando Monzon ##### Director of Software Development at ONEIL "The ease of use is nuts. In under 10 minutes, I switched my logging from file to elmah.io. This is going to be a game-changer." ###### Mitchel Sellers ##### Microsoft MVP "elmah.io has enabled quicker and more accurate fixes and ultimately better customer service." ###### Paul Johnson ##### Managing Director at Insurance Data Solutions "If you would take elmah.io away from our business now, it would be like chopping off an arm. Great product guys!" ###### Matt Ross ##### CEO at Tronik Get started with elmah.io elmah.io is the easy error logging and uptime monitoring service for .NET. Take back control of your errors with support for all .NET web and logging frameworks. [Start logging now](https://app.elmah.io/signup/) Free 21-day trial No credit card required ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://elmah.io/#organization", "name": "elmah.io", "url": "https://elmah.io/", "logo": "https://elmah.io/icons/iTunesArtwork.png", "sameAs": [ "https://x.com/elmah_io", "https://facebook.com/elmahdotio", "https://www.linkedin.com/company/elmah-io/" ] }, { "@type": "WebSite", "@id": "https://elmah.io/#website", "name": "elmah.io", "url": "https://elmah.io/", "publisher": { "@id": "https://elmah.io/#organization" } }, { "@type": "WebPage", "@id": "https://elmah.io/alternatives/#webpage", "url": "https://elmah.io/alternatives/", "name": "elmah.io Alternatives - See how elmah.io compares to the rest", "description": "Wondering if elmah.io is the right decision for you? We have got you covered with this comprehensive guide. Learn how elmah.io compares to others.", "isPartOf": { "@id": "https://elmah.io/#website" }, "publisher": { "@id": "https://elmah.io/#organization" } } ] } ```