Skip to content
This repository was archived by the owner on Nov 10, 2019. It is now read-only.
This repository was archived by the owner on Nov 10, 2019. It is now read-only.

Topic: System.Diagnostics Deep Dive #25

@cwe1ss

Description

@cwe1ss

I feel like diagnostics/tracing/logging topics in corefx don't get enough interest from the community and I'd love to hear if you agree and what could be done to improve this.

Example: We now have integrated distributed tracing with the new "Activity" class and I'm pretty sure that very few people even know about this type. The result is that IMO there hasn't been enough community feedback during the API design phase.

Also, due to the long history of this namespace, there now exist quite a few ways to do similar things and I think it becomes increasingly difficult for people to choose the right types because there's no clear guidance for it.

E.g. one has to choose between the following things just in corefx:

  • Trace
  • Debug
  • TraceSource
  • EventSource
  • DiagnosticSource
  • PerformanceCounter
  • EventCounter
  • EventLog
  • Activity

In addition to that, the following Microsoft libraries also cover this area:

And of course, there's an overwhelming amount of 3rd party libraries in this area (AppMetrics, log4net, Serilog, NLog, LibLog, ...).

It is my impression that people are not happy with what is offered by corefx and therefore prefer to build their own solutions (within Microsoft [Microsoft.Extensions.Logging] and in the community [Serilog, ...]). Also, I think that a lot of regular developers don't even know about most of these types.

Sure, all of these types have their reasons to exist and Vance wrote a great comment about this once but still, I feel like the current state of this area in the .NET ecosystem is way too complex.

Especially in server scenarios it is extremely important to have a good and unified tracing story. Unfortunately, due to this big amount of types/technologies, application developers have to invest a huge amount of time to consolidate these different sources in their environments.

So maybe we could do some sort of "deep dive" in a future stand up with one/some of the area experts and talk about the scope of existing types, the "Microsoft vision" in this area and also ask contributors/community members about their experience with this area?!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions