Skip to content
Алексей . edited this page Jul 26, 2026 · 3 revisions

LogsParser logo

LogsParser

English Русский

LogsParser is a .NET integration library for arizonarp.logsparser.info — the Arizona RP game-server log viewer. It authenticates, fetches pages and turns their HTML into typed models.

This wiki is the API reference. For a condensed overview, see the repository README.

Package LogsParser on NuGet
Version 1.2.7
Target frameworks net7.0, net8.0, net9.0, net10.0
Dependencies Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.Logging.Abstractions
Licence CC BY-NC 4.0 — non-commercial use only

What it does

  • parses logs, admin activity and top operations into immutable records
  • authenticates with login, password and TOTP two-factor confirmation, reactively and on demand
  • solves the React anti-DDoS challenge and retries the original request
  • reads the current account and the filter catalogue with its dynamic[n] parameters out of the page layout
  • tracks rate-limit headers and waits out 429 responses instead of failing
  • leaves cookie persistence entirely to the caller
  • works standalone or through Microsoft.Extensions.DependencyInjection

Install

dotnet add package LogsParser

Thirty-second example

using LogsParser;
using LogsParser.Abstractions;
using LogsParser.Models;
using LogsParser.Net;

using var dataSource = new LogsParserHttpDataSource(
    credentials: new LogsParserCredentials("my_login", "my_password", "BASE32SECRET"),
    cookieStorage: new MemoryCookieStorage());

var client = new LogsParserClient(dataSource);

var page = await client.GetLogsAsync(new LogsQuery(
    ServerId: 201,
    Filters: ["warn", "mute"],
    PeriodFrom: DateTime.UtcNow.AddDays(-1),
    PeriodTo: DateTime.UtcNow));

foreach (var entry in page.Entries)
{
    Console.WriteLine($"{entry.Timestamp:u} {entry.Text}");
}

There is no LoginAsync to call first: the transport reacts to the service's redirects, so the first data request performs the login and the two-factor confirmation by itself.

Contents

Page What it covers
Getting Started Installation, namespaces, the first request in manual and DI mode
LogsParserClient The high-level facade: every public method, parameter and return type
Requests and URI Builder Query models, LogsRequestUriBuilder, validation and normalisation rules
Models Full reference for every public record
Parsers LogsHtmlParser and LogsFilterCatalogParser used without HTTP
Transport and Authentication ILogsParserDataSource, the auth state machine, retries, rate limiting, the anti-DDoS challenge
Cookie Storage The ICookieStorage contract and persisting a session
Dependency Injection AddLogsParser, registration options, service lifetimes
Logging LogsParserLogging, categories and level taxonomy
Exceptions The exception hierarchy and how to handle it

A note on names

The repository, the solution and the project folder are called LogTools. The assembly, the NuGet package and every namespace are called LogsParser. Folder names inside the repository also do not match namespaces on purpose — always take a namespace from the namespace statement, never from the path.

Clone this wiki locally