Files
wwtools/aalogcli/docs/fields.md
T
Joseph Doherty 32f26272ae Initial commit: Wonderware / System Platform tools and reference
Five tools under one repo, all docs organized per DOCS-GUIDE.md:

- aalogcli: .NET 4.8 / x86 CliFx CLI for reading System Platform binary
  logs (*.aaLGX) for LLM debugging, built on aaOpenSource/aaLog. Commands:
  last, tail, range, unread, fields. Stable JSON envelope under --llm-json.
  Build template under lib/build/ for rebuilding aaLogReader.dll.

- aot: ArchestrA Object Toolkit 2014 v4.0 reference material. Dev guide
  (Markdown converted from CHM), API reference for the ArchestrA.Toolkit
  namespace, and the Monitor / Watchdog VS sample solutions.

- graccesscli: .NET 4.8 / x86 CliFx CLI that automates Galaxy
  configuration via the ArchestrA GRAccess COM interop. Includes session
  daemon, IPC protocol, and llm-json envelope contract.

- grdb: SQL/DDL exploration of the Galaxy Repository database. DDL
  captures, reusable queries, hierarchy / contained-name <-> tag-name
  translation notes.

- histdb: LLM-oriented reference for AVEVA Historian retrieval. INSQL
  linked-server, extension tables, every wwXxx time-domain extension,
  every retrieval mode, alarm/event SQL recipes, REST API. Distilled
  from the 243-page Historian Retrieval Guide.

Root contains:
- CLAUDE.md: thin index pointing into each tool's README.
- DOCS-GUIDE.md: doctrine for organizing docs for LLM consumption.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:22:20 -04:00

2.7 KiB

aalog — LogRecord field reference

The --llm-json envelope emits records of shape LogRecordDto, an LLM-friendly subset of the upstream aaLogReader.LogRecord (declared in the bare aaLogReader namespace despite the file path). File-format internals (RecordLength, OffsetToPrevRecord, OffsetToNextRecord) and the redundant EventDate / EventTime / EventMillisec triple are dropped.

Fields

Field Type Source Meaning
MessageNumber ulong LogRecord.MessageNumber Monotonic record id assigned by the logger. Stable across reads of the same log directory; useful as a cursor.
TimestampUtc string LogRecord.EventDateTimeUtc Event time in UTC, ISO-8601 with Z suffix and millisecond precision (2026-05-03T13:59:42.117Z).
TimestampLocal string LogRecord.EventDateTimeLocal Event time in the host's local zone, ISO-8601 without offset (2026-05-03T08:59:42.117).
Level string LogRecord.LogFlag Severity / category. Common values: Info, Warning, Error, Trace, Debug.
Component string LogRecord.Component Originating subsystem (e.g. aaEngine, Bootstrap, aaGR, aaIDE). Best filter axis for narrowing scope.
ProcessName string LogRecord.ProcessName Name of the OS process that emitted the record.
ProcessId uint LogRecord.ProcessID OS process id.
ThreadId uint LogRecord.ThreadID OS thread id within the process.
SessionId string LogRecord.SessionID Session identifier; often empty.
Host string LogRecord.HostFQDN Fully-qualified host name at time of emission.
Message string LogRecord.Message Free-form message body.

Backward / forward compatibility

  • Adding a new field to LogRecordDto is non-breaking. Agents that pin the existing field set continue to work.
  • Renaming or removing a field is breaking. If it ever happens, bump this doc and the --llm-json example in usage.md in the same change.
  • The upstream library's underlying LogRecord may change shape across aaLogReader.dll versions. The CLI shields callers from that — only fields mapped explicitly in LogRecordDto.From (src/AaLog.Cli/Output/LogRecordDto.cs) reach the JSON envelope.

Quick reference at runtime

aalog fields

prints the same field list to stdout in plain text — useful when the caller can't load this file.