Skip to content

Commit 7b2c575

Browse files
lucaspimentelclaude
andcommitted
add logging guidelines based on PR 7467
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent dc3ff31 commit 7b2c575

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

AGENTS.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,26 @@ tracer/src/Datadog.Trace
220220
- StyleCop: see `tracer/stylecop.json`; address warnings before pushing.
221221
- C/C++: see `.clang-format`; keep consistent naming.
222222

223+
## Logging Guidelines
224+
225+
Use clear, customer-facing terminology in log messages to avoid confusion. `Profiler` is ambiguous—it can refer to the .NET profiling APIs we use internally or the Continuous Profiler product.
226+
227+
**Customer-facing terminology (high-level logs):**
228+
- **Datadog SDK** — When disabling the entire product or referring to the whole monitoring solution
229+
- Example: `"The Datadog SDK has been disabled"`
230+
- **Instrumentation** or **Instrumentation component** — For the native tracer auto-instrumentation
231+
- Example: `"Instrumentation has been disabled"` or `"The Instrumentation component failed to initialize"`
232+
- **Continuous Profiler** — Always use full name for the profiling product
233+
- Example: `"The Continuous Profiler has been disabled"`
234+
- **Datadog.Trace.dll** — For the managed tracer assembly (avoid "managed profiler")
235+
- Example: `"Unable to initialize: Datadog.Trace.dll was not yet loaded into the App Domain"`
236+
237+
**Internal/technical naming (still valid):**
238+
- Native loader, Native tracer, Managed tracer loader, Managed tracer, Libdatadog, Continuous Profiler
239+
- `CorProfiler` / `ICorProfiler` / `COR Profiler` for runtime components
240+
241+
**Reference:** See PR 7467 for examples of consistent terminology in native logs.
242+
223243
## Performance Guidelines
224244

225245
- Minimize heap allocations: The tracer runs in-process with customer applications and must have minimal performance impact. Avoid unnecessary object allocations, prefer value types where appropriate, use object pooling for frequently allocated objects, and cache reusable instances.

0 commit comments

Comments
 (0)