logging
Use when reading or writing any ShoMetrics log.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Use when reading or writing any ShoMetrics log.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Use when changing or reviewing code that crosses major application boundaries such as settings, Property Inspector, actions, runtime sources/helpers, rendering, persistence, validation, generated contracts, IPC, version-skewed helper/plugin APIs, or adapters. Keep boundaries explicit and avoid over-engineered plumbing, option bags, duplicated models, and defensive code for impossible states.
Use when writing, reviewing, or changing code in this repo for language-neutral naming, ownership boundaries, comments/documentation, test structure, exception scope, and avoiding speculative abstractions; pair with language-specific skills such as typescript-coding-style or csharp-coding-style when applicable.
Use when writing, reviewing, or changing C#/.NET code in this repo, especially packages/source-windows Core, Helper, ControlPanel, .csproj, .editorconfig, NativeAOT, nullable, async/threading, and modern C# feature decisions. Pair with coding-style for language-neutral naming, comments, tests, and ownership rules.
Use when changing Sho Metrics Hub internationalization, including Property Inspector user-visible copy, Stream Deck manifest locale JSON, i18n message groups, locale resolution, generated i18n scripts, supported locales, translation wording, or dev locale override behavior.
Use when making or reviewing naming changes in this repo, including function verb choices, domain vocabulary, boundary vocabulary, file/type/export names, stored/resolved/settings field names, renderer contract names, and historical vocabulary cleanup.
Use when changing lifecycle hooks, polling, rendering, caching, startup, IPC, benchmarks, throttling, queueing, or any code that may run often enough to affect responsiveness or resource usage.
| name | logging |
| description | Use when reading or writing any ShoMetrics log. |
Use project logging facilities and keep logs owned, bounded, and cheap.
console or call streamDeck.logger directly outside the wrapper.ILogger. Configure Serilog only at host/bootstrap
boundaries.import { logger } from "../logging/logger";
const log = logger.for("Action:MyFeature");
log.atDebug()
.everyMs("high-frequency-sample", 5000)
.log(() => `sample=${JSON.stringify(expensiveObject)}`);
private readonly ILogger<MyWorker> _logger;
_logger
.AtWarning()
.Every(TimeSpan.FromSeconds(30))
.Log("Hardware refresh is slow. durationMs={DurationMs}", durationMs);
IsEnabled(...),
.everyMs(), or C# ILogger throttle extensions for polling loops, hardware
refresh, repeated IPC failures, and repeated malformed wire data.debug and
throttled.packages/hub/com.ez.sho-metrics.sdPlugin/logs/com.ez.sho-metrics.0.log
%appdata%\Elgato\StreamDeck\Plugins\com.ez.sho-metrics.sdPlugin\logs. You do not need to search both locations.%appdata%\Elgato\StreamDeck\logs\
%appdata%\Elgato\StreamDeck\logs\com.ez.sho-metrics.0.log%appdata%\Elgato\StreamDeck\logs\StreamDeck.log.1.log, .*.log under same directory if applicable