# log4net

**Kind:** Service

**Source:** `Pams/Logic/Pams.Storage/Pams.Storage.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`log4net` is a NuGet package dependency declared for `Pams.Storage`. `Pams.Storage` uses it to emit application log events through log4net configuration and appenders.

## Diagram

```mermaid
sequenceDiagram
    participant Storage as Pams.Storage
    participant Log as log4net
    participant Appender as Configured Appender

    Storage->>Log: Create logger and write event
    Log->>Appender: Format and write event
    Appender-->>Storage: Persisted log output
```

## Usage

```ts
import { execFileSync } from "node:child_process";

// Restore the NuGet dependencies for the project that references log4net.
execFileSync(
  "nuget",
  ["restore", "Pams/Logic/Pams.Storage/Pams.Storage.csproj"],
  { stdio: "inherit" },
);
```

## AI Coding Instructions

- Keep log4net package references aligned with the dependency format already used by `Pams.Storage.csproj`.
- Configure appenders, layouts, and log levels outside storage operation logic where possible.
- Include contextual details such as operation names and storage identifiers in log messages.
- Do not write secrets, credentials, or sensitive stored data to log output.

## Used by

2 references from 2 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (2)

- `Pams.Email` — `Pams/Logic/Pams.Email/Pams.Email.csproj`:1
- `Pams.Storage` — `Pams/Logic/Pams.Storage/Pams.Storage.csproj`:1
