API Reference
DnsLogRunner
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) #ValueTuple<DnsLogAnalysisResult, IList<String>>Analyzes DNS logs and returns combined summaries for one or more paths.
Parameters
- paths System.Collections.Generic.IEnumerable{System.String}
- Collection of file paths to analyze.
- filter ADPlayground.DnsLogFilter = null
- Optional filter applied to log entries.
- doNotMerge System.Boolean = false
- When true, keeps summaries separate per file.
- matchedZones System.Boolean = false
- Zone names that should be considered matches.
- deduplicate System.String[] = null
- When true and merging, removes duplicate log entries before building merged summaries.
- subnetMask System.Nullable{System.Int32} = null
- CIDR prefix length for grouping IP addresses.
- kinds ADPlayground.DnsAnalysisKind = All
- Selects which analyses to run.
- runInParallel System.Boolean = false
- Process files concurrently.
- options ADPlayground.DnsLogProcessingOptions = null
- Optional processing behavior such as caching UNC paths.
- progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null
- Optional progress reporter.
- maxRawQueries System.Int32 = 1000
- 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) #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}
- Collection of file paths to analyze.
- filter ADPlayground.DnsLogFilter = null
- Optional filter applied to log entries.
- doNotMerge System.Boolean = false
- When true, keeps summaries separate per file.
- matchedZones System.Boolean = false
- Zone names that should be considered matches.
- deduplicate System.String[] = null
- When true and merging, removes duplicate log entries before building merged summaries.
- subnetMask System.Nullable{System.Int32} = null
- CIDR prefix length for grouping IP addresses.
- kinds ADPlayground.DnsAnalysisKind = All
- Selects which analyses to run.
- runInParallel System.Boolean = false
- Process files concurrently.
- options ADPlayground.DnsLogProcessingOptions = null
- Optional processing behavior such as caching UNC paths.
- progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null
- Optional progress reporter.
- maxRawQueries System.Int32 = 1000
- 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) #IList<DnsLogIntervalSummary>Generates interval summaries across multiple files and merges them.
Parameters
- paths System.Collections.Generic.IEnumerable{System.String}
- Collection of file paths to analyze.
- interval System.TimeSpan
- Length of each interval.
- filter ADPlayground.DnsLogFilter = null
- Optional filter for DNS entries.
- options ADPlayground.DnsLogProcessingOptions = null
- Optional processing behavior such as caching UNC paths.
- progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null
- Optional progress reporter.
- maxRawQueries System.Int32 = 1000
- 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) #Dictionary<String, IList<DnsLogIntervalSummary>>Generates interval summaries for each file separately.
Parameters
- paths System.Collections.Generic.IEnumerable{System.String}
- Collection of file paths to analyze.
- interval System.TimeSpan
- Length of each interval.
- filter ADPlayground.DnsLogFilter = null
- Optional filter for DNS entries.
- options ADPlayground.DnsLogProcessingOptions = null
- Optional processing behavior such as caching UNC paths.
- progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null
- Optional progress reporter.
- maxRawQueries System.Int32 = 1000
- 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) #IEnumerable<DnsDebugMessage>Reads DNS debug log entries from the specified paths.
Parameters
- paths System.Collections.Generic.IEnumerable{System.String}
- Collection of file paths to read.
- continueOnError System.Boolean = false
- Skip files that cannot be processed.
- runInParallel System.Boolean = false
- Process files concurrently.
- options ADPlayground.DnsLogProcessingOptions = null
- Optional processing behavior such as caching UNC paths.
- progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null
- Optional progress reporter.
- progressUpdateInterval System.Nullable{System.Int64} = null
- Minimum bytes between progress updates.
- perFileTimeout System.Nullable{System.TimeSpan} = null
- Optional timeout per file when running in parallel.
- maxRawQueries System.Int32 = 1000
- 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) #IAsyncEnumerable<DnsDebugMessage>Asynchronously reads DNS debug log entries from the specified paths.
Parameters
- paths System.Collections.Generic.IEnumerable{System.String}
- Collection of file paths to read.
- continueOnError System.Boolean = false
- Skip files that cannot be processed.
- cancellationToken System.Threading.CancellationToken = null
- Token to observe for cancellation.
- cancellationCheckInterval System.Int32 = 32
- Lines to process between cancellation checks.
- runInParallel System.Boolean = false
- Process files concurrently.
- progress System.IProgress{ADPlayground.DnsLogBatchProgress} = null
- Optional progress reporter.
- progressUpdateInterval System.Nullable{System.Int64} = null
- Minimum bytes between progress updates.
- options ADPlayground.DnsLogProcessingOptions = null
- Optional processing behavior such as caching UNC paths.
- maxRawQueries System.Int32 = 1000
- Maximum number of raw queries to store per summary.
Returns
Asynchronous sequence of DNS debug messages.
public static DnsRunResponse Run(DnsRunRequest req) #DnsRunResponseExecutes DNS log processing based on the specified request.
Parameters
- req ADPlayground.DnsRunRequest
- Request describing paths and options.
Returns
Response containing results for the chosen mode.
public static async Task<DnsRunResponse> RunAsync(DnsRunRequest req) #Task<DnsRunResponse>Asynchronously executes DNS log processing based on the specified request.
Parameters
- req ADPlayground.DnsRunRequest
- Request describing paths and options.
Returns
Response containing results for the chosen mode.