KUBC.DAYZ.Logging
10.0.0
dotnet add package KUBC.DAYZ.Logging --version 10.0.0
NuGet\Install-Package KUBC.DAYZ.Logging -Version 10.0.0
<PackageReference Include="KUBC.DAYZ.Logging" Version="10.0.0" />
<PackageVersion Include="KUBC.DAYZ.Logging" Version="10.0.0" />
<PackageReference Include="KUBC.DAYZ.Logging" />
paket add KUBC.DAYZ.Logging --version 10.0.0
#r "nuget: KUBC.DAYZ.Logging, 10.0.0"
#:package KUBC.DAYZ.Logging@10.0.0
#addin nuget:?package=KUBC.DAYZ.Logging&version=10.0.0
#tool nuget:?package=KUBC.DAYZ.Logging&version=10.0.0
KUBC.DAYZ.Logging
Журналы сервера, чтение, парсинг.
Данный программный модуль разрабатывался с целью чтения логов сервера «на лету», т.е. сервер пишет логи, а программа на ходу их читает и публикует данные происходящего в игре. Пример работы данного алгоритма можно увидеть тут: kubanoids.ru
Философия работы с логами
Основной инструмент для работы с файлом лога сервера представлен абстрактным классом LogFile. Который ориентирован на возможность чтения файла на лету, т.е. мы можем дочитывать файл если он обновился. Закрытие файла выполняется по вызову метода Dispose(). Класс прочитав строчку вызывает метод OnLineReadAsync(string line), метод вызывается только в случае если мы дочитали до конца строки, если символ конца строки не найден то метод не вызывается.
Так как большинство логов сервера содержат сокращенное время события, для работы с логами используется абстрактный класс LogFileShortTime, который содержит инструменты для корректировки времени.
Для реализации чтения лога в приложении необходимо реализовать какой то из абстрактных классов лога, в котором реализовать обработку входящих строк в методе OnLineRead(DateTime time, string data), в который передается время когда произошло событие на сервере и строка информации, для анализа которой можно использовать один из включенных в проект парсеров событий сервера.
RPT
Журнал сервера реального времени, хотя, наверное, реальное время в прошлом, по факту он не всегда пишет постоянно.
Абстрактный класс для чтения файла журнала RealTimeLogFile реализует чтение журнала, и анализирует дату и время создания журнала, и метод OnLineRead(DateTime time, string data) вызывается с передачей времени UTC журнала.
Реализованы события журнала:
AverageServerFPSСредний ФПС сервера, парсерAverageServerFPSBuilderUsedMemoryРазмер памяти, используемый сервером, парсерUsedMemoryBuilderPlayerSteamFoundЗапись о Steam ID подключаемого игрока, парсерPlayerSteamFoundBuilder
ADM
Парсеры модуля разработаны на основе документации от разработчиков
Журнал лога администраторов сервера, содержит информацию о том, кто где ходил, что делал, и от чего умирал.
Абстрактный класс для чтения файла журнала AdminLogFile реализует чтение журнала, и анализирует дату и время создания журнала, и метод OnLineRead(DateTime time, string data) вызывается с передачей времени UTC журнала.
Реализованы события журнала:
AveragePlayerCountКоличество игроков на сервере, парсерAveragePlayerCountBuilderBledOutИгрок истек кровью, парсерBledOutBuilderBuiltСобытие строительства игроком, парсерBuiltBuilderChatСобытие игрового чата, парсерChatBuilderDismantledСобытие когда игрок разобрал базу, парсерDismantledBuilderDugInСобытие закапывания объекта, парсерDugInBuilderDugOutСобытие выкапывания объекта, парсерDugOutBuilderEmoteСобытие когда игрок сотворил какую то эмоцию, или там сел или еще какую анимацию замутил, парсерEmoteBuilderEmoteWithItemЭмоция игрока, с предметом в руках, парсерEmoteBuilderFoldedСобытие складывания объекта, парсерFoldedBuilderKilledByDistanceWeaponИгрок убит другим игроком с дальнобойного оружия, парсерKilledByDistanceWeaponBuilderKilledByHandsИгрок забил другого игрока руками до смерти, парсерKilledByHandsBuilderKilledByItemИгрок убит каким то игровым предметомИгрок убит каким то игровым предметом, парсерKilledByItemBuilderKilledByWeaponИгрока убил другой игрок с помощью оружия, парсерKilledByWeaponBuilderKilledByZombieИгрок убит зомби, парсерKilledByZombieBuilderLoweredСобытие опускания тотема, парсерLoweredBuilderMountedСобытие монтажа элемента, парсерMountedBuilderPackedСобытие упаковки (обычно используется с палатками), парсерPackedBuilderPlacedСобытие размещения объекта, парсерPlacedBuilderPlayerChoosingRespawnСобытие игрок нажал кнопочку РЕСПАВН в состоянии когда персонаж бессознания, парсерPlayerChoosingRespawnBuilderPlayerConnectedСобытие подключения игрока, парсерPlayerConnectedBuilderPlayerDiedСобытие игрок умер, парсерPlayerDiedBuilderPlayerDisconnectedDiedСобытие игрок отключился, парсерPlayerDisconnectedBuilderPlayerFallСобытие когда игрок получил урон падая с высоты, парсерPlayerFallBuilderPlayerHitByDistanceWeaponУрон нанесен с помощью дальнобойного оружия, парсерPlayerHitByDistanceWeaponBuilderPlayerHitByExplosionУрон игроку от бризантного боеприпаса, парсерPlayerHitByExplosionBuilderPlayerHitByItemИгрок получил урон от предмета или игровой механики, парсерPlayerHitByItemBuilderPlayerHitByItemInZoneУрон игроку от некого игрового итема с указанием зоны поражения, парсерPlayerHitByItemInZoneBuilderPlayerHitByPlayerСобытие игрок получил урон от другого игрока без использования оружия. Буквально выражаясь кулаками побил, парсерPlayerHitByPlayerBuilderPlayerHitByTransportУрон игроку в ДТП, парсерPlayerHitByTransportBuilderPlayerHitByWeaponУрон игроку от другого игрока с использованием оружия. Прямым использованием т.е. топоры, молоты и прочее, но уже не голыми руками, парсерPlayerHitByWeaponBuilderPlayerHitByZmbУрон игроку нанесен зомбем, парсерPlayerHitByZmbBuilderRaisedСобытие подъема тотема, парсерRaisedBuilderReportБазовое событие жалобы/отчета игрока, парсерReportBuilderSuicideИгрок все таки совершил суицид, парсерSuicideBuilderUnconsciousСобытие игрок потерял сознание, парсерUnconsciousBuilderUnconsciousDisconectСобытие когда игрок отключился в бессознательном состоянии, парсерUnconsciousDisconectBuilderUnmountedСобытие демонтажа элемента с конструкции, парсерUnmountedBuilder
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- KUBC.DAYZ.Core (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.0 | 233 | 11/16/2025 |
Обновили до стабильной версии .NET 10