Class CreateLoggingProfileWindow
Step-by-step window for creating or updating the Logging aggregate's console sink, file sink, optional structured sink (plus its backend), and profile in one run. LoggingProfileCreator does the actual validation and generation work. The profile's get-or-create resolution goes through Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAsset/Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAssetGui, resolved by Serenity.Logging.Infrastructure.Editor.Builder.CreateLoggingProfileWindow._profileId WITHIN Serenity.Logging.Infrastructure.Editor.Builder.CreateLoggingProfileWindow._outputFolder rather than by type alone (see LoggingProfileCreator's type doc), so Serenity.Logging.Infrastructure.Editor.Builder.CreateLoggingProfileWindow.RefreshTarget also re-runs on an Id or folder change, not only from Open(). The three sinks stay resolved by TYPE as project-wide singletons and draw their status through LoggingProfileSinkStatusGui instead — a set of independent optional assets has no single "target" an object field could pick, mirroring Serenity.AssetPrefetcher.Infrastructure.Editor.Builder.CreatePrefetchPolicyWindow's registry/profiles split. The stepped-wizard scaffolding — the header and breadcrumb, the body scroll, the footer and its error gate, and the select-and-ping a finished run ends with — comes from Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1; this window declares only its own step table and what the primary action does.
Namespace: Serenity.Logging.Infrastructure.Editor.Builder
Assembly: Serenity.UnityLogging.Infrastructure.Editor.dll
Syntax
public sealed class CreateLoggingProfileWindow : SerenityStepWizardWindow<CreateLoggingProfileWindow.WizardStep>
Constructors
CreateLoggingProfileWindow()
Declaration
public CreateLoggingProfileWindow()
Properties
OwnedTargets
Declaration
protected override IEnumerable<SerenityWizardTargetAsset> OwnedTargets { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<SerenityWizardTargetAsset> |
PrimaryButtonLabel
Re-read every repaint off Serenity.Logging.Infrastructure.Editor.Builder.CreateLoggingProfileWindow._target, so the button says "Create" or "Update" from whichever profile the current Id and folder resolve to.
Declaration
protected override string PrimaryButtonLabel { get; }
Property Value
| Type | Description |
|---|---|
| string |
WindowTitle
Declaration
protected override string WindowTitle { get; }
Property Value
| Type | Description |
|---|---|
| string |
Methods
BuildSteps()
Declaration
protected override WizardStepDescriptor<CreateLoggingProfileWindow.WizardStep>[] BuildSteps()
Returns
| Type | Description |
|---|---|
| WizardStepDescriptor<WizardStep>[] |
OnBeforeDrawStep()
Adopts a target the reader picked in this same frame, before anything reads it — the seam
the old OnGUI spent its first statement on, ahead of the header. The sink resolutions are not
rebuilt here: OnEnable already owns that, and repeating it per repaint only hides which hook
is responsible.
Declaration
protected override void OnBeforeDrawStep()
OnPrimaryAction()
Lands on Done through the base's UNGATED Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1.PingAndGoTo(System.String,`0,System.Boolean) rather than Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1.FinishWithAsset(System.String,`0): this wizard never latched a terminal run (it has no "Create another" restart, and its Done panel is the end of the road), and the jump it hand-rolled went straight at the controller with no gate installed.
Declaration
protected override void OnPrimaryAction()
Open()
Declaration
public static void Open()