---
title: SAIF.Framework.Logging dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: <owner>
last_reviewed: 2026-07-23
library: SAIF.Framework.Logging
reference_type: package
---

# SAIF.Framework.Logging dependencies

## Internal dependencies

| Dependency | Type | Usage |
| --- | --- | --- |
| [SAIF.Framework.Mail](../saif-framework-mail/overview.md) | Internal | `clsLogError.CreateErrorWithEmail` instantiates `SAIF.Framework.Mail.SAIFMail.clsSAIFMessage` and calls `.SendMail(...)` to email error notifications. |
| [SAIF.Framework.Security](../saif-framework-security/overview.md) | Internal | `Imports SAIF.Framework.Security`; used for `clsSecurityPrincipal` (`New clsSecurityPrincipal(clsSecurityPrincipal.Platform.Web/Windows)`, `.IsAuthenticated`, `.UserName`, `.Instance`, `.CurrentThreadUser`) to capture the current user's identity for inclusion in audit/error/trace log records, and for `AppGlobal.EnvironmentService`. |
| [SAIF.Framework.Security.EnvironmentApi](../saif-framework-security-environmentapi/overview.md) | Internal | `AppGlobal.EnvironmentService.GetConfigSetting(...)` / `GetApplicationEnvironment()` / `ToDevelopmentEnvironment(...)` resolve environment-specific configuration (notably the `wsLogging` service URL) used by `clsLogAudit`, `clsLogError`, and `clsLogTrace`. See [Configuration](configuration.md) for the verified `loggingServiceUrl`, `legacyMailServiceUrl`, `QueueServer`, and `QueueName` settings catalog. |

## External dependencies

| Dependency | Version | Usage |
| --- | --- | --- |
| System | framework-standard | Base class library types (`Exception`, `IO.StreamWriter`, etc.). |
| System.Configuration | framework-standard | `ConfigurationManager.AppSettings` reads in `clsLoggingQueues` (`QueueServer`/`QueueName` keys). |
| System.Data | framework-standard | Referenced in the `.vbproj`; no direct usage of `System.Data` types found in scanned code — likely a vestigial reference*. |
| System.EnterpriseServices | framework-standard | Referenced in the `.vbproj`; no direct usage found in scanned code — likely a vestigial reference*. |
| System.Messaging | framework-standard | Referenced in the `.vbproj`; `clsLoggingQueues` only builds an MSMQ path *string* and never opens a `System.Messaging.MessageQueue` — no direct queue I/O found in this library*. |
| System.Web | framework-standard | `HttpContext.Current` used by `clsLogCommon.IsWeb` and `clsLoginLog` to detect web hosting context and read request/server info. |
| System.Web.Services | framework-standard | Base type (`SoapHttpClientProtocol`) for the generated `wsLogging.clsWSLogging` SOAP client proxy. |
| System.Xml / System.Xml.Linq | framework-standard | Referenced in the `.vbproj`; no direct usage found in scanned live code, possibly used only transitively by the generated `Reference.vb` proxy*. |
| System.Core / System.Data.DataSetExtensions | framework-standard | Standard project-template references; no direct usage found in scanned code*. |
| Microsoft.VisualBasic | framework-standard | Imported for VB runtime helpers; `Microsoft.VisualBasic.Logging.FileLogTraceListener` is also referenced in `app.config` as a standard VB "My.Application.Log" scaffold, not actively invoked by any reviewed class*. |

## Dependency risks and notes

- **Tight coupling to sibling framework libraries**: `clsLogAudit`, `clsLogError`, and `clsLogTrace` directly construct `clsSecurityPrincipal` and reference `AppGlobal.EnvironmentService` rather than depending on abstractions, coupling this "framework" library to concrete implementations in `SAIF.Framework.Security` and `SAIF.Framework.Security.EnvironmentApi`*.
- **Remote SOAP web-service dependency**: the default logging sink is `wsLogging.clsWSLogging`, a generated SOAP/ASMX client proxy targeting a legacy web service. Its default design-time endpoint (`http://webdev01/webservices/wslogging/clswslogging.asmx`, from `app.config`/`Settings.Designer.vb`) is overridden at runtime via `AppGlobal.EnvironmentService.GetConfigSetting(EnvironmentConfigKeys.LoggingServiceUrl)`. The exact key name/value of `LoggingServiceUrl` is defined outside this library and was not verified**.
- **Server-side persistence of the `wsLogging` service is unknown**: whether the remote web service ultimately writes audit/error/trace records to a database, flat file, or elsewhere is outside this repository/library and could not be verified**.
- **Vestigial or unused project references**: `System.Data`, `System.EnterpriseServices`, `System.Messaging`, `System.Xml`, and `System.Xml.Linq` are declared in the `.vbproj` but no direct usage of their types was found in the scanned live code; these may be vestigial or used only transitively by the generated web-service proxy*.
- **MSMQ path formatting only, no queue I/O**: `clsLoggingQueues.GetQueueName()` formats a `FormatName:DIRECT=OS:{server}\{queue}` string but never opens or writes to a `System.Messaging.MessageQueue`; the actual queue producer/consumer is presumably implemented elsewhere and could not be confirmed from this library's source**.
- **Email dependency is conditional**: the `SAIF.Framework.Mail` dependency is only exercised via `clsLogError.CreateErrorWithEmail`, a secondary entry point; the primary `CreateError` path does not depend on `SAIF.Framework.Mail`.
- **Best-effort/fail-silent logging masks dependency failures**: all logging entry points wrap execution in `Try...Catch` with empty/`'gobble gobble` catch blocks, so failures in any dependency (SOAP call, file I/O, mail send) are silently swallowed and never surfaced to the caller — this reduces reliability visibility when a dependency (e.g., `wsLogging` or the mail service) is unavailable.

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with `**` could not be confirmed; treat as unknown until verified.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- `SAIF.Framework.Logging/clsLogAudit.vb`
- `SAIF.Framework.Logging/clsLogCommon.vb`
- `SAIF.Framework.Logging/clsLogError.vb`
- `SAIF.Framework.Logging/clsLoggingQueues.vb`
- `SAIF.Framework.Logging/clsLoginLog.vb`
- `SAIF.Framework.Logging/clsLogTrace.vb`
- `SAIF.Framework.Logging/Web References/wsLogging/Reference.vb`
- `SAIF.Framework.Logging/SAIF.BOF.Framework.Logging.vbproj`
- `SAIF.Framework.Logging/app.config`
- `SAIF.Framework.Logging/My Project/Settings.Designer.vb`
