• 0

Reference: Logging


Question

DevTech

Any discussion on logging, Microsoft's Application insights and similar topics are welcome.

 

No particular reason, just adapting a post I made in another thread so the information is more accessible.

 

In the case of logging, I think every programmer gets the urge to make their own logging libary and too many give in to that itch and upload something to GitHub. The noise level for logging is rarher high - there are simply too many great logging libraries and too many crap ones and well just too many....

 

So I will try to point out a few things.

 

ETW

 

The most efficient low overhead logging is ETW which is built into every Windows computer and was originally  used only inside of device drivers. A while back Microsoft released the API for user level usage. A logging lib that targets ETW is worth looking at if you are confident of always running on Windows.

 

ASP.NET GitHub

 

https://github.com/aspnet/Logging Abstraction layer used by the ASP.NET team - targets: 

 

 

Other interesting C# libs

 

https://github.com/NLog -popular project

https://github.com/neuecc/EtwStream - ETW lib

https://github.com/Microsoft/Microsoft.Diagnostics.Tracing.Logging - ETW lib from Microsoft

https://github.com/eth0izzle/NLog.Slack - NLog target for Slack - the trendy company Microsoft tried to buy but they wanted billions 

https://github.com/narratr/story - don't just log, tell a story!

https://github.com/elmah/Elmah - still popular

https://github.com/codetuner/Arebis.Web.Mvc.ElmahDashboard - hey, it's a dashboard!

https://github.com/Microsoft/ApplicationInsights-dotnet-logging - logging adapters to target Microsoft's Applic ation Insights

https://github.com/OmniKits/RxLog - logging for the Reactive crowd

 

Edited by DevTech
added Reference to the title to suggest old thread not get locked
  • Like 1
Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0
DevTech

Cloud/Server based logging

 

Note: There must be some sort of unlimited time free tier plan/option for it to be listed here.

 

Please help to complete the list if you can. Any description of your experience with a product would be welcome.

 

 

Microsoft HockeyApp with Xamarin Insights

https://www.hockeyapp.net/features/

 

Microsoft Mobile Engagement

https://azure.microsoft.com/en-us/services/mobile-engagement/

 

Microsoft Application Insights

https://azure.microsoft.com/en-us/documentation/articles/app-insights-overview/

 

Datadog

https://www.datadoghq.com/

 

Exceptionless

https://exceptionless.com/

 

Seq

https://getseq.net/

 

Loggly

https://www.loggly.com/

 

.NET Client for Loggly  - https://github.com/neutmute/loggly-csharp

 

 

Loggr

http://loggr.net/

 

Segment

https://segment.com/

 

Collect customer data with one API and send it to hundreds of tools for analytics, marketing, and data warehousing.

Track events in your web and mobile apps using our libraries. We’ll normalize the data and send it to integrations and warehouses.

https://segment.com/integrations

https://segment.com/warehouses

 

 

Host Your Own Server

 

JSNLog

http://jsnlog.com/

 

Exceptionless

https://exceptionless.com/

 

Source: https://github.com/exceptionless/Exceptionless

https://github.com/exceptionless/Exceptionless/wiki/Self-Hosting

 

Apache Flume

https://cwiki.apache.org/confluence/display/FLUME/Home

https://github.com/apache/flume

 

"Apache Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. Its main goal is to deliver data from applications to Apache Hadoop's HDFS. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic applications."

 

 

 

 

NO Free Plan

 

Expecting anyone to test and evaluate an infrastructure component in 30 days is plain absurd and can't possibly be a recipe for sales success, but for completeness I will more or less try to update the list of stupid products:

 

elmah.io

https://elmah.io/

 

https://github.com/elmahio

 

Note: uses OSS from http://www.raboof.com/projects/elmah/  but is not affiliated with the elmah logging framework

 

Stackify

http://stackify.com/

 

Splunk

https://www.splunk.com/

 

Raygun

https://raygun.com/

 

Microsoft Azure Event Hubs

https://azure.microsoft.com/en-us/services/event-hubs/

 

 

Edited by DevTech
more updates after added Servers after added Flume
Link to post
Share on other sites
  • 0
DevTech

UWP Logging

 

- must support the UWP specific subset of .NET

- must support Async

 

Section 1 - Checking the main .NET Logging Frameworks

 

1. NLog - http://nlog-project.org/

 

NOT WORKING

https://github.com/NLog/NLog/issues/1492

 

 

2. Apache log4net - http://logging.apache.org/log4net/

 

NOT WORKING

http://logging.apache.org/log4net/release/framework-support.html

 

3. Elmah - https://github.com/elmah/Elmah

 

NOT WORKING

Designed for ASP.NET so I won't bother looking for a UWP version.

 

4. Serilog - http://serilog.net/

 

WORKING

https://github.com/serilog/serilog/wiki/Getting-Started

 

"The supported platforms are .NET 4.5, Windows 8 (WinRT) and Windows Phone 8"support

https://github.com/serilog/serilog/issues/684 marked as fixed re UWP

 

5. Exceptionless - https://exceptionless.com/

 

WORKING

 

https://github.com/exceptionless/Exceptionless.Net

Uses PCL to support UWP

https://github.com/exceptionless/Exceptionless.Net/issues/23

 

6. Event Tracing for Windows (ETW)

 

WORKING

 

For UWP, ETW is exposed to the UWP Runtime via Windows.Foundation.Diagnostics

 

https://msdn.microsoft.com/en-us/library/windows/apps/windows.foundation.diagnostics.loggingchannel.aspx

 

 

7. Common.Logging - http://net-commons.github.io/common-logging/

 

WORKING

UWP is one of the directly supported frameworks.

 

 

 

 

Section 2 - Lesser known logging frameworks specific to UWP

 

 

1. MetroLog - https://github.com/onovotny/MetroLog

 

 

2. WindowsUniversalLogger - https://github.com/PavelGriza/windows-universal-logger

 

 

 

 

 

Link to post
Share on other sites
  • 0
DevTech

Logging Proxies

 

The idea behind Logging Proxies seems logical at first. Since there are so many Logging Frameworks that come and go, rise to prominence and then fall to obscurity (and unsupported status) it seems to make sense to create a layer between your application and the various logging frameworks so that different frameworks can be switched in and out.

 

This is such a BAD IDEA in so many ways and hopefully I can list the reasons to avoid this strategy over time. However, there are always special cases that make one person's bad idea into anther persons good idea for what they are trying to accomplish. (Need to resist long rant on the stupidity of Unit Testing, SOLID and other silly Social Memes that infect the development world)

 

Reasons This Proxy Thing is a Bad Idea:

  • Efficiency - while normally I'm not a great fan of starting out by looking at efficiency and all things surrounding the idea of making Machine Time more valuable than Human Time, one of the primary psychological barriers to adopting extensive tracing and logging in software is the obvious overhead of code that doesn't contribute to the application functionality (although long term evolution and stability is also a program feature) So adding a proxy layer just makes the "Groan Factor" just that much worse.
  • LCD - Lowest common denominator - Logging Frameworks can be extremely complex and it would be impossible to get good feature coverage particularly when you consider all the possible Sources, Sinks and Filters
  • Hubris - An active OSS Logging Project will most likely be well supported long after your pathetic software gets the last budget cut from your Dilbert Manager.
  • Architecture Astronaut - nuff said.
  • many more reasons to come...

 

 

ASP.NET Logging

 

https://github.com/aspnet/Logging Abstraction layer used by the ASP.NET team - targets: 

 

 

Common.Logging

 

- http://net-commons.github.io/common-logging/

 

  • Log4Net (v1.2.9 - v1.2.15)
  • NLog (v1.0 - v4.1)
  • Microsoft Enterprise Library Logging Application Block (v3.1 - v6.0)
  • Microsoft AppInsights
  • Microsoft Event Tracing for Windows (ETW)*

 

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Abhay V
      Minor Edge Dev build 87.0.637.0 out now with one new feature and a few fixes
      by Abhay Venkatesh



      Microsoft released the first Edge 87 build to the Dev channel last week, bringing a few new features such as the downloads option prompt, table of contents for PDFs, and more. Along with version 87 making it to the Dev channel, version 86 was also promoted to the Beta channel last week.

      Today, the firm has released a minor update to the Dev channel bumping up the build to 87.0.637.0. Though this is just the second release of a major new version, there is just one new feature that brings the ability to swipe down on a touchscreen to enable Shy UI.

      In addition to the single feature, the firm also noted in the feedback summary that it has rolled out the password generator feature that suggests strong passwords automatically for users. As usual, there are the usual fixes for reliability and changed behavior, accompanying the singular new feature.

      Here is the single feature that was added:

      Here are a couple of updates made to improve the reliability of the browser:

      And the list of fixes to combat changed behavior includes the following:

      As is always the case, the release comes with a list of known issues that users should be aware of. Most of these have been carried from the previous build. Here is the complete list:

      Users running Dev channel builds should be served the update automatically. However, users can also head into settings and check for updates manually from the ‘About Microsoft Edge’ page to pull the update. Thought today’s release is light on features, more should be on the way in subsequent builds.

    • By Abhay V
      This week's Edge Dev build adds Collections improvements, secure DNS, and more
      by Abhay Venkatesh



      As is customary every week, Microsoft is releasing a new Edge Dev build to users running the Dev version of the Chromium-based browser. Today’s build has a few new features for highlighting text in PDF using a pen tool, Collections improvements, and the ability to record and submit a video when submitting feedback from the browser.

      The release also brings the recently spotted secure DNS feature that lets users to default to DNS over HTTPS (DoH), making DNS requests secure by encrypting them. The firm released Edge 86 to the Dev branch back in July and added a host of new features. However, the subsequent releases have been light on features.

      Here is the list of all new features being added with this release:

      As with all releases, there are fixes for reliability and changed behavior. Here are the fixes that will improve the reliability of the browser:

      Here are the fixes for changed behavior, including a fix for the issue with Discord:

      Lastly, there are a bunch of known issues that users must be aware of:

      The firm recently detailed a new URL pasting feature that directly pastes copied URLs as linked text instead of plain text in text boxes on Windows. The feature is currently available for Canary users and will make it to other branches soon.

      As usual, today’s Dev channel update will automatically pulled by the browser in the background. Users can also get the update by heading to the ellipsis menu (…) > Help and feedback > About Microsoft Edge to force the browser to check for updates.

    • By Abhay V
      First Edge 86 build out for the Dev branch, brings a bunch of new features
      by Abhay Venkatesh



      Microsoft is releasing the first Edge 86 build for the Dev branch today, bringing a bunch of new features. The firm recently shipped version 84 to the stable channel with Collections and PDF improvements. As for the Dev branch, the firm released the last major version 85 build earlier this month, followed by a minor update last week. Today’s release bumps up the browser to build 86.0.587.0.

      The first version 86 build brings a bunch of new features such as the ability to use a custom image for the new tab page background, a button to delete address bar suggestions, and a toggle on new InPrivate tabs that lets users select the Strict Tracking Prevention option, the Read Aloud function for PDFs on ARM based devices, and more. It also comes with some management policy improvements.

      Here is the list of new features in today’s build:

      As is the case with all builds, there are also a bunch of fixes for improved reliability and changed behavior. Here is the full list of fixes for improved reliability:

      And here is the changelog for the extensive list of fixes for changed behavior:

      There also is a long list of known issues. Here is the fill changelog:

      Microsoft also recently published the release schedule for the browser. With version 86 now being promoted to the Dev channel, the Beta version of Edge should be receiving version 85 this week. Edge 85 is not due for the stable channel until the end of August.

      As usual, users running Edge Dev should be served today’s update automatically. You can also head to the ellipsis menu > Help & Feedback > About Microsoft Edge to check for updates. Since the update is just rolling out, it could take a while for it to show up for all users.

    • By Ather Fawaz
      Amazon Honeycode allows you to build mobile and web apps without any code
      by Ather Fawaz



      Announced today, Amazon Honeycode is a new, fully managed service that will allow users to build mobile and web applications without any programming. These applications will be tailored specifically for tasks that involve tracking data over time and notifying users of changes, routing approvals, and facilitating interactive business processes.

      For this purpose, Amazon Honeycode houses a visual application builder. Essentially, the app will automate the process of building and linking three tiers of functionality—database, business logic, and user interface. To get started, you can select a pre-built template. Here, the data model, business logic, and applications are pre-defined and ready-to-use out of the box. There is also an option to import data into a blank workbook. The ability to add notifications, reminders, approvals and other actions based on conditions has been provided as well.

      A preliminary setup can be completed within minutes. The resultant application can scale up to 100,000 rows in each workbook and will be free for up to 20 users. However, you'll have to pay for the additional users and storage for larger applications.

      If you are interested in finding out more, you may visit this webpage. If you want to get started with Amazon Honeycode, you may sign up here.

    • By Ather Fawaz
      A group of enthusiasts has annotated the assembly code for the Apollo 11 mission to the Moon
      by Ather Fawaz

      Margaret Hamilton next to the stack of books containing the code which helped ferry Apollo 11 to the moon. This year is set to be an eventful one for space travel and exploration. Already, we've seen SpaceX make history by becoming the first privately-owned company to ferry astronauts to the International Space Station. We're also well into the testing stages of the Starship project that aims to make space exploration and habitation a tangible reality. Not to mention, the summer launch window of NASA's new Perseverance rover to Mars is just around the corner as well.

      While all of these are bold initiatives, it helps to take a step back and gauge just how far we've come since our baby steps in the world of space exploration. Fermat's Library has done exactly that. The platform, which specializes in developing software to help illuminate academic papers, went through the original Apollo 11 code that was penned down by Margaret Hamilton in assembly language back in 1969 and annotated many parts of it.



      Specifically, the team annotated the SINGLE_PRECISION_SUBROUTINES.agc file for calculating transcendental functions like sine and cosine that were a linchpin for Apollo 11's voyage to the Moon. Fermat's Library uploaded its annotation of the source code on Margins, an online repository that it has curated for academics and enthusiasts to annotate papers with LaTeX and Markdown scripts. The excerpt below shows the computer's approximation of calculates cos(𝜋𝑥) in the SPCOS subroutine.



      The complete annotation of the subroutine can be found here. If you are interested in finding out more, the source code of the Command Module (Comanche055) and Lunar Module (Luminary099) on the original Apollo 11 guidance computer (AGC) can be found in this GitHub repository.