EmpowerOperations / volition

The Volition Optimization API
https://empowerops.com
6 stars 1 forks source link

find standard logging strategy for dotnet #22

Open Groostav opened 5 years ago

Groostav commented 5 years ago

This issue is to find ways we might easily instrument C# applications for logging information.

This information is useful because it should:

  1. enable system testing against input/output
  2. be usable in a functional-testing way
  3. provide a facility for auditing and investigating problems.
Groostav commented 5 years ago

notes on logging frameworks:

  1. I need a logging system I can use on ANSYS, Solidworks, and volition ref-client. We should default with warnings going to a file.
    • implicit here is that the whatever system logging system offers different levels (eg WARNING, ERROR, INFO, etc)
  2. Microsoft has a paradigm other than std-err/std-out for logging. Theres "Debugging output", that both Debug.Writeline and Trace.Writeline append to.
  3. Regarding interceptors, it seems that Microsoft Unity has some features, but short of that there is no braindead strategy. Create dynamic proxies and add them yourself.
    • (recursively) for the API instances such that we can log all interactions with the ANSYS APIs.
    • GRPC instances also should be instrumented for inbound/outbound messages. In solidworks right now this is the TCPListeners + protobuf which is a problem
  4. serilog seems very concerned with formatting and less concerned with runtime configuration. From what I can tell there is no file configuration.