# Formaty wyjściowe

LLMS index: [llms.txt](/v1.2.0.0/llms.txt)

---

DNSServer.DebugLogParser może generować dwa typy wyjścia:

- Plik danych CSV zawierający wszystkie przetworzone wpisy
- Opcjonalne pliki statystyk do agregacji dziennej

Aby zobaczyć przykłady każdego typu wyjścia w praktyce, sprawdź przykład w tym artykule.

## Plik danych CSV

Przykładowe pliki wyjściowe:

- en-US (bez szczegółów): [WithComputerName](../outputformat/en-us.-.dnsdebug-dc01.-.WithComputerName.csv), [NoComputerName](../outputformat/en-us.-.dnsdebug-dc01.-.NoComputerName.csv)
- de-DE (bez szczegółów): [WithComputerName](../outputformat/de-de.-.dnsdebug-dc01.-.WithComputerName.-.NoDetails.csv), [NoComputerName](../outputformat/de-de.-.dnsdebug-dc01.-.NoComputerName.-.NoDetails.csv)
- de-DE (ze szczegółami / `Details` JSON wypełniony dla bloków szczegółów pakietu): [WithComputerName](../outputformat/de-de.-.dnsdebug-dc01.-.WithComputerName.-.WithDetails.csv), [NoComputerName](../outputformat/de-de.-.dnsdebug-dc01.-.NoComputerName.-.WithDetails.csv)

Plik danych CSV zawiera wszystkie przetworzone wpisy dziennika z następującymi kolumnami:

- `DateTime`: Data i czas zapytania/odpowiedzi DNS
- `ThreadId`: Wewnętrzny identyfikator wątku serwera DNS
- `Context`: Kontekst operacji (na przykład Packet, Event, Note, DSPoll, Init, Lookup, Recurse, Remote, Tombstone)
- `PacketId`: Identyfikator pakietu DNS
- `Protocol`: UDP lub TCP
- `Direction`: `Rcv` (odebrane/zapytanie) lub `Snd` (wysłane/odpowiedź)
- `ClientIP`: Adres IP klienta
- `Xid`: Identyfikator transakcji (hex)
- `Type`: Zapytanie lub odpowiedź
- `Opcode`: Standard, Notify, Update lub Unknown
- `FlagsHex`: Flagi zapytania/odpowiedzi (hex)
- `FlagsChar`: Zdekodowane flagi (Authoritative, Truncated, RecursionDesired, RecursionAvailable)
- `ResponseCode`: NOERROR, NXDOMAIN, SERVFAIL itd.
- `QuestionType`: Typ rekordu DNS (A, AAAA, MX, PTR itd.)
- `QuestionName`: Nazwa domeny zapytanej
- `Information`: Dodatkowe informacje (dla Event/Note/itp.; dla bloków szczegółów pakietu zawiera linię nagłówka szczegółów TCP/UDP)
- `Details`: Dane JSON dla wpisów Packet zawierających bloki szczegółów (puste w przeciwnym razie)
- `ComputerName`: Nazwa serwera źródłowego (zawsze obecna; pusta jeśli nie określona)

Uwaga: Kolumna `ComputerName` jest zawsze dołączana na końcu każdego rekordu, aby zapewnić spójną strukturę wyjścia. Ułatwia to scenariusze konsolidacji dzienników z wielu serwerów.

## Pliki statystyk (opcjonalne)

Przykładowe pliki wyjściowe:

- Statystyki kontekstu: [en-US (WithComputerName)](../outputformat/en-us.-.dnsdebug-dc01_Statistic.-.WithComputerName.csv), [en-US (NoComputerName)](../outputformat/en-us.-.dnsdebug-dc01_Statistic.-.NoComputerName.csv), [de-DE (WithComputerName)](../outputformat/de-de.-.dnsdebug-dc01_Statistic.-.WithComputerName.csv), [de-DE (NoComputerName)](../outputformat/de-de.-.dnsdebug-dc01_Statistic.-.NoComputerName.csv)
- Statystyki pakietów: [en-US (WithComputerName)](../outputformat/en-us.-.dnsdebug-dc01_PacketStatistic.-.WithComputerName.csv), [en-US (NoComputerName)](../outputformat/en-us.-.dnsdebug-dc01_PacketStatistic.-.NoComputerName.csv), [de-DE (WithComputerName)](../outputformat/de-de.-.dnsdebug-dc01_PacketStatistic.-.WithComputerName.csv), [de-DE (NoComputerName)](../outputformat/de-de.-.dnsdebug-dc01_PacketStatistic.-.NoComputerName.csv)

Gdy generowane są statystyki, tworzone są dwa oddzielne pliki:

### 1) Statystyki kontekstu (`*_Statistic.csv`)

Kolumny:

- `Date`: Data (`yyyy-MM-dd`)
- `Context`: Nazwa kontekstu (na przykład Packet, Event, Note)
- `Count`: Liczba rekordów
- `ComputerName`: Nazwa serwera źródłowego

### 2) Statystyki pakietów (`*_PacketStatistic.csv`)

Kolumny:

- `Date`: Data (`yyyy-MM-dd`)
- `ClientIP`: Adres IP klienta
- `Protocol`: UDP lub TCP
- `Direction`: `Rcv` lub `Snd`
- `QuestionType`: Typ rekordu DNS
- `Count`: Liczba rekordów
- `ComputerName`: Nazwa serwera źródłowego
