You can tell I'm working on Azure Functions from the frequency of posts. This one focuses on logging. Functions by default generate plenty of logs which you can view in the portal or download using the Kudu REST API. This is great and it comes out of the box without you having to configure a single thing. However, what if you have some custom, complex logic that you want to capture and log. And I guess that in most instances there will be more than one Function per AppService and potentially a lot more applications and services deployed on Azure. …[read more]
Showing all posts tagged: 'logging'
A 6-post collection
I'm in the process of creating a cloud-based application that needs to scale well and I'm thinking about error management and logging. There will be a follow up post about the application itself, but for now I want to focus on the logging bit. In my quest to find the right tool, I remembered reading about Serilog some time ago. I've been meaning to try Serilog but I had to find the right project/opportunity. And now I finally got it! The thing I like about Serilog is that it’s extremely easy to set up especially with its fluent …[read more]
AngularJs has an impressive and robust logging mechanism through the $logService and $log injection. However, Angular logs everything to the console, which is neither a robust or scalable solution. Sometimes, you need to be able to intercept the exceptions and do something extra. This could be as simple as adding extra information or sending all logs to the server/database. Below I've included two different ways that you can achieve that. Option 1 The first one is pretty simple and allows you to hook into the $exceptionHandler and pass a logger in the form of an AngularJs factory. The factory …[read more]
I have blogged about application logging in .NET a few times, here and here. It seems that every iteration gets better than the one before - the logging frameworks, not my posts :) Logging has always been important but for some odd reason it is either too complicated to implement or too clunky. In the beginning, we had strongly coupled implementation using one of the established logging frameworks (log4net, nLog etc). Then we learned from our mistakes and moved on to the Common.Logging API which abstracted things quite a bit and made logging more accessible. The goal behind this evolution …[read more]
In an earlier post I described how the Common.Logging API can help us abstract logging in our application by hiding the implementation details and allowing us to use different logging providers (NLog, Log4Net etc) in a modular, plug-n-play way. In this post, we will examine how to combine Common.Logging with Log4Net in order to output log messages to a file. 1. Install the right NuGet packages in the right order Before beginning, I will assume that all your assemblies already implement the Common.Logging API. If not, then go through my post to see how to add logging …[read more]
Most developers know that logging is an invaluable tool especially when trying to troubleshoot issues with code running on production. In .Net, there is a plethora of tools to choose from such as Log4Net, nLog, Elmah etc. Each tool has its pros and cons so the decision on which one to use is usually based around the project requirements, complexity, performance and so on. What the Common Logging API brings to the game is a lightweight “infrastructure” logging platform that allows developers to focus on the logging requirements instead of the logging tools and required configuration. The Common Logging API …[read more]