TestimoX

API Reference

Class

DnsLogRunner

Namespace ADPlayground
Assembly ADPlayground
Modifiers static

High-level runner API that encapsulates progress, caching, and coordination so callers (PowerShell or C#) can invoke DNS log processing with minimal glue.

Inheritance

  • Object
  • DnsLogRunner

Methods

public static ValueTuple<DnsLogAnalysisResult, IList<String>> AnalyzeSummaries(IEnumerable<String> paths, DnsLogFilter filter = null, Boolean doNotMerge = false, Boolean deduplicate = false, String[] matchedZones = null, Nullable<Int32> subnetMask = null, DnsAnalysisKind kinds = All, Boolean runInParallel = false, DnsLogProcessingOptions options = null, IProgress<DnsLogBatchProgress> progress = null, Int32 maxRawQueries = 1000) #
Returns: ValueTuple<DnsLogAnalysisResult, IList<String>>

Analyzes DNS logs and returns combined summaries for one or more paths.

Parameters

paths System.Collections.Generic.IEnumerable{System.String} requiredposition: 0
Collection of file paths to analyze.
filter ADPlayground.DnsLogFilter = null optionalposition: 1
Optional filter applied to log entries.
doNotMerge System.Boolean = false optionalposition: 2
When true, keeps summaries separate per file.
matchedZones System.Boolean = false optionalposition: 3
Zone names that should be considered matches.
deduplicate System.String[] = null optionalposition: 4
When true and merging, removes duplicate log entries before building merged summaries.
subnetMask System.Nullable{System.Int32} = null optionalposition: 5
CIDR prefix length for grouping IP addresses.
kinds ADPlayground.DnsAnalysisKind = All optionalposition: 6
Selects which analyses to run.
runInParallel System.Boolean = false optionalposition: 7
Process files concurrently.
options ADPlayground.DnsLogProcessingOptions = null optionalposition: 8
Optional processing behavior such as caching UNC paths.
progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null optionalposition: 9
Optional progress reporter.
maxRawQueries System.Int32 = 1000 optionalposition: 10
Maximum number of raw queries to store per summary.

Returns

Analysis result and any errors encountered.

public static Task<ValueTuple<DnsLogAnalysisResult, IList<String>>> AnalyzeSummariesAsync(IEnumerable<String> paths, DnsLogFilter filter = null, Boolean doNotMerge = false, Boolean deduplicate = false, String[] matchedZones = null, Nullable<Int32> subnetMask = null, DnsAnalysisKind kinds = All, Boolean runInParallel = false, DnsLogProcessingOptions options = null, IProgress<DnsLogBatchProgress> progress = null, Int32 maxRawQueries = 1000) #
Returns: Task<ValueTuple<DnsLogAnalysisResult, IList<String>>>

Asynchronously analyzes DNS logs and returns combined summaries for one or more paths.

Parameters

paths System.Collections.Generic.IEnumerable{System.String} requiredposition: 0
Collection of file paths to analyze.
filter ADPlayground.DnsLogFilter = null optionalposition: 1
Optional filter applied to log entries.
doNotMerge System.Boolean = false optionalposition: 2
When true, keeps summaries separate per file.
matchedZones System.Boolean = false optionalposition: 3
Zone names that should be considered matches.
deduplicate System.String[] = null optionalposition: 4
When true and merging, removes duplicate log entries before building merged summaries.
subnetMask System.Nullable{System.Int32} = null optionalposition: 5
CIDR prefix length for grouping IP addresses.
kinds ADPlayground.DnsAnalysisKind = All optionalposition: 6
Selects which analyses to run.
runInParallel System.Boolean = false optionalposition: 7
Process files concurrently.
options ADPlayground.DnsLogProcessingOptions = null optionalposition: 8
Optional processing behavior such as caching UNC paths.
progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null optionalposition: 9
Optional progress reporter.
maxRawQueries System.Int32 = 1000 optionalposition: 10
Maximum number of raw queries to store per summary.

Returns

Task that yields the analysis result and any errors encountered.

public static IList<DnsLogIntervalSummary> GetSummaryPerIntervalMerged(IEnumerable<String> paths, TimeSpan interval, DnsLogFilter filter = null, DnsLogProcessingOptions options = null, IProgress<DnsLogBatchProgress> progress = null, Int32 maxRawQueries = 1000) #
Returns: IList<DnsLogIntervalSummary>

Generates interval summaries across multiple files and merges them.

Parameters

paths System.Collections.Generic.IEnumerable{System.String} requiredposition: 0
Collection of file paths to analyze.
interval System.TimeSpan requiredposition: 1
Length of each interval.
filter ADPlayground.DnsLogFilter = null optionalposition: 2
Optional filter for DNS entries.
options ADPlayground.DnsLogProcessingOptions = null optionalposition: 3
Optional processing behavior such as caching UNC paths.
progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null optionalposition: 4
Optional progress reporter.
maxRawQueries System.Int32 = 1000 optionalposition: 5
Maximum number of raw queries to store per summary.

Returns

List of merged interval summaries.

public static Dictionary<String, IList<DnsLogIntervalSummary>> GetSummaryPerIntervalPerFile(IEnumerable<String> paths, TimeSpan interval, DnsLogFilter filter = null, DnsLogProcessingOptions options = null, IProgress<DnsLogBatchProgress> progress = null, Int32 maxRawQueries = 1000) #
Returns: Dictionary<String, IList<DnsLogIntervalSummary>>

Generates interval summaries for each file separately.

Parameters

paths System.Collections.Generic.IEnumerable{System.String} requiredposition: 0
Collection of file paths to analyze.
interval System.TimeSpan requiredposition: 1
Length of each interval.
filter ADPlayground.DnsLogFilter = null optionalposition: 2
Optional filter for DNS entries.
options ADPlayground.DnsLogProcessingOptions = null optionalposition: 3
Optional processing behavior such as caching UNC paths.
progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null optionalposition: 4
Optional progress reporter.
maxRawQueries System.Int32 = 1000 optionalposition: 5
Maximum number of raw queries to store per summary.

Returns

Dictionary mapping file paths to their interval summaries.

public static IEnumerable<DnsDebugMessage> ReadEntries(IEnumerable<String> paths, Boolean continueOnError = false, Boolean runInParallel = false, DnsLogProcessingOptions options = null, IProgress<DnsLogBatchProgress> progress = null, Nullable<Int64> progressUpdateInterval = null, Nullable<TimeSpan> perFileTimeout = null, Int32 maxRawQueries = 1000) #
Returns: IEnumerable<DnsDebugMessage>

Reads DNS debug log entries from the specified paths.

Parameters

paths System.Collections.Generic.IEnumerable{System.String} requiredposition: 0
Collection of file paths to read.
continueOnError System.Boolean = false optionalposition: 1
Skip files that cannot be processed.
runInParallel System.Boolean = false optionalposition: 2
Process files concurrently.
options ADPlayground.DnsLogProcessingOptions = null optionalposition: 3
Optional processing behavior such as caching UNC paths.
progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null optionalposition: 4
Optional progress reporter.
progressUpdateInterval System.Nullable{System.Int64} = null optionalposition: 5
Minimum bytes between progress updates.
perFileTimeout System.Nullable{System.TimeSpan} = null optionalposition: 6
Optional timeout per file when running in parallel.
maxRawQueries System.Int32 = 1000 optionalposition: 7
Maximum number of raw queries to store per summary.

Returns

Sequence of DNS debug messages.

public static IAsyncEnumerable<DnsDebugMessage> ReadEntriesAsync(IEnumerable<String> paths, Boolean continueOnError = false, CancellationToken cancellationToken = null, Int32 cancellationCheckInterval = 32, Boolean runInParallel = false, IProgress<DnsLogBatchProgress> progress = null, Nullable<Int64> progressUpdateInterval = null, DnsLogProcessingOptions options = null, Int32 maxRawQueries = 1000) #
Returns: IAsyncEnumerable<DnsDebugMessage>

Asynchronously reads DNS debug log entries from the specified paths.

Parameters

paths System.Collections.Generic.IEnumerable{System.String} requiredposition: 0
Collection of file paths to read.
continueOnError System.Boolean = false optionalposition: 1
Skip files that cannot be processed.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to observe for cancellation.
cancellationCheckInterval System.Int32 = 32 optionalposition: 3
Lines to process between cancellation checks.
runInParallel System.Boolean = false optionalposition: 4
Process files concurrently.
progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null optionalposition: 5
Optional progress reporter.
progressUpdateInterval System.Nullable{System.Int64} = null optionalposition: 6
Minimum bytes between progress updates.
options ADPlayground.DnsLogProcessingOptions = null optionalposition: 7
Optional processing behavior such as caching UNC paths.
maxRawQueries System.Int32 = 1000 optionalposition: 8
Maximum number of raw queries to store per summary.

Returns

Asynchronous sequence of DNS debug messages.

public static DnsRunResponse Run(DnsRunRequest req) #
Returns: DnsRunResponse

Executes DNS log processing based on the specified request.

Parameters

req ADPlayground.DnsRunRequest requiredposition: 0
Request describing paths and options.

Returns

Response containing results for the chosen mode.

public static async Task<DnsRunResponse> RunAsync(DnsRunRequest req) #
Returns: Task<DnsRunResponse>

Asynchronously executes DNS log processing based on the specified request.

Parameters

req ADPlayground.DnsRunRequest requiredposition: 0
Request describing paths and options.

Returns

Response containing results for the chosen mode.