---
title: Logging overview
summary: Which service this proxy calls, who consumes it, and what it is used for.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Logging overview

`Logging` is a svcutil-generated SOAP proxy inside `SAIF.Services.Web.Proxies` that records error entries against the external `WSLogging`† ASMX service, and the repository holds it because `EnvironmentApi.SAIFExceptionLogger`, the ASP.NET Web API global exception logger, forwards every unhandled Web API exception to it.

## Purpose
- Record an unhandled ASP.NET Web API exception, with application, environment, page, user, and machine context, against the centralized SAIF logging service.

## Business context

`WSLogging` is the repository's mechanism for centralizing error records across applications; `EnvironmentApi` uses only the error-recording capability of a three-operation contract that also supports trace and audit logging.

| Attribute | Value |
| --- | --- |
| Business capability | Centralized recording of application error, trace, and audit entries |
| Owning team of the called service | Not determined from source |
| Criticality to the consumer | Not determined from source |
| Fallback when unavailable | `Trace.TraceError` — the call site catches every exception from the logging call itself and falls back to `System.Diagnostics.Trace` |

## Consumers

| Consumer | Call site | Operations used | Notes |
| --- | --- | --- | --- |
| `EnvironmentApi.SAIFExceptionLogger.Log` | `Services/SAIF.Services.WebApi/EnvironmentApi/App_Start/SAIFExceptionLogger.cs:33` | [`WriteError`](reference.md#writeerror) | The proxy library is referenced by `EnvironmentApi.csproj` through a binary `HintPath` to `..\..\..\Bin\SAIF.Services.Web.Proxies.dll`, not a project reference |

A repository-wide search for `LoggingServiceProxy` or `clsWSLoggingSoapClient` finds no other construction.

## Capability summary

| Capability | Operations | Description |
| --- | --- | --- |
| Error recording | [`WriteError`](reference.md#writeerror) | Records an exception's application, environment, error date, message, source, page, user, and machine context |

The full declared surface, including `WriteTrace` and `WriteAudit`, is on [Contract](contract.md), and the present-versus-called reconciliation is on [Operation map](operation-map.md).

## Generation provenance

| Aspect | Finding |
| --- | --- |
| Generated by | `svcutil` (Service Reference) |
| Generated from | `Services/SAIF.Services.Web.Proxies/Service References/Logging/clsWSLogging.wsdl` |
| Discovery document | `Services/SAIF.Services.Web.Proxies/Service References/Logging/clsWSLogging.disco` |
| Generated namespace | `SAIF.Services.Web.Proxies.Logging` |
| Namespace matches the consuming project | Yes |
| Regeneration risk | No hand edits to `Reference.cs` were found; refreshing the reference is low risk |

## Non-documented artifacts

- `Reference.cs` and the `configuration*.svcinfo`/`Reference.svcmap` designer artifacts under `Service References/Logging/` are tool output and are not narrated beyond the provenance facts above, per the generated-code doctrine on [Client index](index.md).

## Related documentation
- [Client index](index.md)
- [Architecture](architecture.md)
- [Contract](contract.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI.

## Sources
- `Services/SAIF.Services.Web.Proxies/LoggingServiceProxy.cs`
- `Services/SAIF.Services.Web.Proxies/Service References/Logging/clsWSLogging.wsdl`
- `Services/SAIF.Services.Web.Proxies/Service References/Logging/clsWSLogging.disco`
- `Services/SAIF.Services.WebApi/EnvironmentApi/App_Start/SAIFExceptionLogger.cs`
