apm-agent-dotnet icon indicating copy to clipboard operation
apm-agent-dotnet copied to clipboard

Enable global file logging

Open Mpdreamz opened this issue 8 months ago • 3 comments

This ensures we can specify file logging globally and uniformly. Greatly simplifying the debug-ability of the agent.

The preferred way is to set any or all of the following:

  • ELASTIC_OTEL_FILE_LOG_LEVEL (to anything but none)
  • ELASTIC_OTEL_FILE_LOG_DIRECTORY
  • ELASTIC_OTEL_LOG_TARGETS (to anything but none)
    • if only set to stdout no file will be created but global logging will kicking )

This ensure we have one way to debug both our proprietary agent as well as the Elastic OpenTelemetry Distribution.

For backwards compatible reasons the profiler variables are also supported:

  • ELASTIC_APM_PROFILER_LOG
  • ELASTIC_APM_PROFILER_LOG_DIR
  • ELASTIC_APM_PROFILER_LOG_TARGETS

Globally setting

  • ELASTIC_APM_LOG_LEVEL and ELASTIC_APM_LOG_DIRECTORY is also supported but not preferred.

Setting these in any of our supported deploy scenarios:

  • Manual instrumentation (nuget)
    • ASP.NET (classic)
    • ASP.NET core
      • NOTE: we now log to both the configured ILogger and our global logging.
  • Auto Instrumentation
    • Profiler
    • Startup hooks To keep support existing deploys this now always globally logs to file if only ELASTIC_APM_STARTUP_HOOKS_LOGGING is set as well.

This further updates our docs for the profiler and troubleshooting to prefer ELASTIC_OTEL_* variables.

The profiler is updated to read the same environment variables as managed code.

Mpdreamz avatar Jun 03 '24 15:06 Mpdreamz