• 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
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By News Staff
      Pay What You Want for the 20-Course app Programming Bundle
      by Steven Parker

      Today's highlighted deal comes via our Online Courses section of the Neowin Deals store, where you can Pay What You Want for The 20-Course Programming Bundle. From game development to making responsive apps, this 20-course collection has everything you need to start coding.



      With the Pay What You Want bundles, you can get something incredible for as little as you want to pay. And if you beat the average price, you’ll receive the fully upgraded bundle! Included in this Pay What You Want deal, are the following courses:

      Pay What You Want (as little as $1) for the following course:

      Image Processing with Python: Build an Instagram-Style Filter
      Develop a Photo Filter Editor from Scratch & Master Your Understanding of Matrices, Color Models & More

      Beat the average price to get the following courses as well:

      Azure Deployment for Node.js Applications
      Discover How to Deploy Your Node.js Apps to Microsoft Azure & Make Them Accessible Online

      MongoDB for Beginners
      Get Acquainted with MongoDB & Discover How to Manage Data Operations Like a Pro

      Node.js For Beginners: Create Server-Side Apps with JavaScript
      Learn How to Build Fast Web Applications with Node.js, the Server-Side Solution for JavaScript

      Intro to Next.js
      Get started with the Minimalist Framework That Allows You to Build Static, Server-Rendered React Apps

      Intro to Bootstrap
      Learn Bootstrap, the Secret to Quickly Creating Professional & Attractive Websites + Web Apps

      Create Interactive Pages with Javascript & the DOM API
      Explore the DOM API, HTML5 & Advanced JavaScript Concepts by Building Three Projects

      JavaScript Programming: Learn by Making a Mobile Game
      Dive into JavaScript's Core Concepts By Building a Game From Scratch

      HTML & CSS Course
      Learn HTML & CSS from Scratch by Creating a Responsive Landing Page

      AWS Deployment for Node.js Applications
      Discover How to Deploy Your Node.js Apps to AWS & Make Them Accessible Online

      The Complete HTML5 Mobile Game Development Course
      Use the Phaser HTML5 Framework & JavaScript Technologies to Build Cross-Platform Games

      Master Unity Game Development: Beginner's Bootcamp
      Learn Unity & C# by Creating a 3D Multi-Level Platformer Game

      Master Unity Mobile Game Development
      Learn the Quirks of Mobile Game Development with Unity

      Unity Game Development: Build a First-Person Shooter
      Master Unity by Building Your Own Version of Doom or Call of Duty

      Data Manipulation with Pandas
      Learn How to Read & Manipulate Data + Prepare It for Analysis Using the Pandas Library

      The Complete Python Data Visualization Course
      Master the Major Plotting Libraries Matplotlib, Seaborn & Bokeh + Use Them to Create Beautiful Plots

      Learn Python 3 by Making a Game
      Get up to Speed with Python by Creating Your Very Own Game

      Build a Tower Defense Game with Phaser 3
      Master the Skills Needed to Build a Complete Tower Defense Game Using Phaser 3

      Numpy Matrices & Vectors
      Take Advantage of the Numpy Library & Build Powerful + Functional Arrays and Matrices

      The Complete Responsive Web Design Course
      Learn How to Build Professional Websites That Work Across Different Devices & Platforms

      Good to know
      Certification of completion included Length of time users can access this course: lifetime Redemption deadline: redeem your code within 30 days of purchase Here's the deal:
      The bundle represents an overall retail value of $3,732 But you can Pay What You Want for the unlocked courses (as little as $1) Beat the average price and you'll take home the entire bundle. Beat the Leader's price and get entered into the epic giveaway. Pay What You Want for The 20-Course Programming Bundle
      See other Pay What You Want deals. This is a time-limited offer that ends soon.
      Get $1 credit for every $25 spent · Give $10, Get $10 · 10% off for first-time buyers.

      Not for you?
      That's OK, there are other deals on offer you can check out here.



      Enter giveaways: Polycade Home Arcade | $5K in cash | $10K in Crypto Ivacy VPN - 5 year subscription for just $1 per month NordVPN - 2 year subscription at up to 68% off Private Internet Access VPN - subscriptions at up to 71% off Unlocator VPN or SmartDNS - unblock Geoblock with 7-day free trial Neowin Store for our preferred partners. Subscribe to Neowin - for $14 a year, or $28 a year for Ad-Free experience Disable Sponsored posts · Neowin Deals · Free eBooks · Neowin Store

      Disclosure: This is a StackCommerce deal or giveaway in partnership with Neowin; an account at StackCommerce is required to participate in any deals or giveaways. For a full description of StackCommerce's privacy guidelines, go here. Neowin benefits from shared revenue of each sale made through our branded deals site, and it all goes toward the running costs.

    • By KaoDome
      I didn't even know how to pose the question to be honest... it took several rewrites of the title haha.
       
      I'm looking for a way to handle several things in the same app or website if possible, focusing on usability.
       
      I have recently enrolled in some courses at a college, so I'm looking for a calendar of sorts where I could mark repeating tasks (the lessons) every week or non-repeating (e.g. meetings, deadlines, etc.) with weekly and monthly views for example. That part is easy to find I'd say, calendar apps or services are plenty and even webmail accounts offer them nowadays. One thing that is not important, for example, is the ability to link to files or notes for each activity, although welcomed it's not something I'm actively interested in (it'd be a bonus so to speak).
       
      For each course (and/or assignment, still unsure) I'd like to have some accounting done, maybe whether it's already done, the time I spend in each, or even each subsection... and things are starting to look like what I need is a task manager? Or a project planner? Ala Microsoft Project, something with Gantt charts or Kanban boards, but I'm not that interested in planning to be honest; after all I have no idea how long any of it would take because it's all new to me, so I can't usefully estimate at this point; I'm more into just logging, perhaps having the ability to extract some useful data out of the logging at the end, like a report of some sort, but that's not the focus at the moment.
       
      Looking around for things related to this I found some time logging and billing things? Toggl and Clockify for example, but they seem way too overkill for my purpose, or complicated I guess. I have yet to give them a try, but it's just the impression they made on me, like they're for professional usage instead. Maybe a To Do app? But that could be too simplistic for the whole thing.
       
      In any case, the usage would be mainly from a Windows desktop, but the calendar part at least would need to be synced somehow to be able to access it on the go either from my phone (Android) or from a different computer (Windows, Linux, maybe via a web interface?). I don't mind using 3rd party clouds, for example if the service were to provide it I would be fine with it, the solution needn't be on premise.
       
      Anyway do you guys/gals know of anything that fits the bill? I'm open to suggestions even if several services are required at the end if there's nothing holistic. A priori it doesn't matter if it/they are paid solutions, as long as the price is sensible I don't think it'd be a problem.
       
      Thanks!
       
      PS. Also, any advice on the matter would be appreciated as well ;)
    • By zikalify
      Try out freeCodeCamp if you want to get into programming
      by Paul Hill



      Whether you’ve seen some of the latest robot or AI Sci-Fi films or you’re simply thinking about a change of career and want to learn to code, freeCodeCamp is an excellent resource to begin your journey into the world of programming, it's available to everyone around the world and at no cost.

      freeCodeCamp, which is a little over six years old, boasts more than 40,000 graduates who have gone on to get jobs at big tech firms including Microsoft, Apple, Google, Amazon, and Spotify. It offers a variety of courses which you work through where you'll learn all the relevant information before completing several projects which demonstrate you’ve learned the content - upon completion of the projects, you get a certificate for the course which appears on your public profile.

      This approach to teaching programming is great because you end up with five projects per course which can be shown off to prospective employers, who will most likely want to know what you’ve worked on. The courses that are available at the time of writing include:

      Responsive Web Design JavaScript Algorithms and Data Structures Front End Development Libraries Data Visualization APIs and Microservices Quality Assurance Scientific Computing with Python Data Analysis with Python Information Security Machine Learning with Python It’s recommended that you work through the material in order but nobody is stopping you from jumping to other sections first. In addition to the courses, there’s also a section called Coding Interview Prep which contains hundreds of coding challenges that “test your knowledge of algorithms, data structures, and mathematics” as well as additional projects which you can add to your portfolio.

      To help you along your coding journey, freeCodeCamp features a very active forum where you can ask questions if you get stuck on any of the tasks or just want to ask about any coding concepts. Once you are thinking about searching for jobs that utilise your new skills, the Career Advice section of the forums can provide you with invaluable information about landing a job.

      A few other niceties about the service include that content is available in English, Spanish, and Chinese, there are regular blog posts related to programming from contributors and they’ve created a radio player that loops music “designed for coding” 24/7.

      To begin learning, you do not need to create an account but making one is highly recommended so that you can save your progress, earn certificates, and have a public profile page to show off. To learn more about the service, reading the FAQs section is highly recommended.

    • By Abhay V
      Microsoft Edge is getting a new Extensions menu in the toolbar, now available for Insiders
      by Abhay Venkatesh



      Microsoft recently introduced a bunch of changes to the Edge browser that were aimed at improving the usability of the offering. These include the revamped favorites and history menus, a streamlined downloads UI, and more recently, the enhancements to Collections. Today, the firm announced another change coming to select Dev and Canary channel users, and this time, it relates to extensions.

      Users that tend to use multiple extensions might have a cluttered toolbar owing to all the icons crowding the real estate next to the Omnibox. The only alternatives are to either move icons into the ellipsis menu or access them through the dedicated extensions page. Now, the Redmond firm is adding a dedicated Extensions menu in the toolbar that serves a flyout menu with the list of available extensions, similar to the history and Collections menus. Users can easily move the desired extensions by right-clicking on the desired icons and hide them from the toolbar.

      The Extensions menu – similar to the one present in Google Chrome – not only contains the available extensions but also a view/hide toggle that users can use to choose which shortcuts are needed to be displayed on the toolbar, helping reduce clutter and avoid displaying infrequently used extensions. The three-dot menu contains more options such as the ability to remove an extension altogether or navigate to granular settings for the selected offering. Lastly, the menu also contains quick links to the Edge Addons page and the dedicated extension settings page.

      While the change is currently rolling out to users running Dev and Canary channel builds, it is part of a Controlled Feature Roll-out (CFR), meaning that not every user running the test builds will receive the feature right away. Considering that the change is minor, it should not be too long before it makes it to more users.

      Interestingly, a listing in the Edge Feature Roadmap page suggests that the feature is slated for release with version 89, which is expected to be released to the stable channel this week. It is possible that the change will be released via a minor mid-stream update or a server-side switch after the firm completes testing it with Insiders.

      Have you received the new Extensions menu in Edge on the Dev or Canary channels? Let us know in the comments below!

    • By zikalify
      Google releases new Android development curriculum
      by Paul Hill



      Google has announced the launch of the Android Development with Kotlin curriculum that gives instructors a plan to follow when teaching students how to write apps for Android devices. The course can be delivered in-person or in a virtual environment which really works well for the current situation where lockdowns are in place.

      This new curriculum replaces an older one that was released back in 2018. The updated curriculum factors in Android platform changes such as the release of Android Jetpack libraries and Google preferring Android apps to be written in Kotlin rather than Java. According to the firm, Kotlin makes developers more productive with its “more concise syntax and improved code safety”.

      Teachers are allowed to modify the curriculum when delivering it to students to make it work better in their specific circumstances. What’s more, is that instructors do not need to have prior Android or Kotlin experience although having a good grasp of programming is recommended.

      In addition to the new course, Google is also making its Android Study Jams programme available for all today. Android Study Jams is an online curriculum that teaches programming through hands-on lessons. The programme is tailored for peer groups who learn to build Android apps together with a study group.

      The Android Study Jams programme comes with two tracks that students can follow. The first track is aimed at programming novices who have no experience while the other track assumes that you do have programming knowledge but that you’re new to Android and Kotlin.

      Today’s news is oriented towards formal education environments but Google also has a selection of materials that independent learners can also take advantage of. The company recommends its self-paced learning content, a selection of courses on Udacity, the library of YouTube videos, as well as the resources on developer.android.com.