Extraktor chyb protokolu V1.2.0.0








Extraktor chyb protokolu V1.2.0.0
Přestaňte procházet tisíce řádků logu a snažit se zjistit, který mod vám hru pokazil.
Nástroj Log Error Extractor zaznamenává všechny chyby a varování, které vaše hra vygeneruje, a zapisuje je do přehledného a čitelného protokolu – pouze chyby a varování, nic víc. Poté seřadí každý mod ve vaší složce podle počtu specifických problémů, které způsobuje, takže viník je na vrcholu seznamu, a ne někde v 6 000 řádkovém protokolu.
Co to dělá
Zapíše zprávu obsahující pouze chyby a varování, uloženou jako log_errors.txt vedle vašeho běžného protokolu.
Seřadí vaše mody od nejhoršího po nejlepší podle počtu zřetelných chyb a označí ty, které se dopouštějí závažných chyb.
Sbalí opakované zprávy – jeden moderátor, který 500krát vyvolá stejné varování, zobrazí se jednou s počtem, ne s 500 řádky.
Rozděluje report mod po modu, abyste přesně viděli, co který z nich hlásí
Konzolové příkazy jsou k dispozici pro každého, kdo je preferuje: dumpLogErrors, topLogErrors, countLogErrors, clearLogErrors
Začínáme
Přiřaďte klávesu v Možnosti → Ovládání → Extraktor chyb protokolu, načtěte uloženou položku a stiskněte ji. Nabídka se otevře kdekoli – pěšky, ve vozidle, na tom nezáleží. Možnosti procházejte pomocí šipek a stiskněte OK.
Uložit zprávu do souboru – zapíše celou zprávu do souboru log_errors.txt ve složce Farming Simulator 2025.
Zobrazit nejhorší mody – zobrazí nejhorší mody přímo na obrazovce, není potřeba žádný soubor.
Zobrazit počet – ukazuje, kolik chyb a varování bylo dosud zaznamenáno.
Vymazat – vymaže všechny dosud shromážděné údaje, aby vaše další zpráva začala čistě.
Ta poslední možnost je nejužitečnější, když hledáte konkrétní konflikt. Vymažte vyrovnávací paměť, znovu vytvořte vše, co se pokazilo, a poté uložte zprávu – a nebude obsahovat nic jiného než to, co se stalo mezitím.
Důležité – nepřejmenovávejte mod
Složka se záměrně jmenuje FS25_AAA_LogErrorExtractor. Farming Simulator načítá mody abecedně a AAA nutí tento mod načíst jako první, aby mohl zachytit chyby ze všeho, co se načte po něm. Přejmenujte ho a on se zobrazí v seznamu a vše, co se načte před ním, zůstane nezachyceno.
Požadavky a omezení
Pouze pro PC. Toto je skriptový mod a skriptové mody nejsou podporovány na PlayStationu ani Xboxu.
Prozatím pouze pro jednoho hráče. Multiplayer není testovaný, není známo, zda je nefunkční – je deklarován jako nepodporovaný, takže se nenačte v multiplayerovém uložení. Pokud chcete pomoci, změňte parametr <multiplayer supported="true"/> v modDesc, otestujte to a dejte mi vědět, co se stane.
Nedokáže zachytit chyby, které se vyskytnou před načtením, takže se základní zprávy o spuštění hry a zprávy na úrovni enginu nezobrazí. Tyto informace naleznete v souboru log.txt samotné hry.
Hlášení problémů
Mod při každém načtení uloženého souboru zapíše malý soubor s kontrolou stavu, log_status.txt. Pokud něco nefunguje, otevřete to – a pokud hlásíte problém, přiložte to prosím.
V1.2.0.0
Nepotřebné soubory byly ze zip archivu odstraněny.
Vím, že jsem ve svém příspěvku i ve videu s návodem na použití říkal, že se PSČ nemá přejmenovávat. Ale v komentářích se objevila poznámka, na kterou jsem nepomyslel.
Předpona FS25_ je pravidlo pro odesílání souborů do ModHubu, nikoliv něco, co vyžaduje herní engine. Hře záleží pouze na tom, aby název obsahoval písmena, číslice a podtržítka a nezačínal číslicí. Přejmenování archivu na AAA_LogErrorExtractor.zip funguje bez problémů.
Takže klikněte pravým tlačítkem myši na mod, vyberte přejmenovat a poté smažte předponu FS25_, pokud zjistíte, že se vám mody nenacházejí.
Zkontrolujte si log konzole nebo základní hry a v souboru `log.txt` se objevilo varování před texturou – PNG soubor v nezpracovaném formátu, který měl být DDS, ale Extraktor chyb protokolu ho nezachytil. Zpráva se vrátila čistá. Vypadalo to jako chyba v extraktoru. Není. Je to omezení fungování modu a stojí za to si to zapsat.
Jak extraktor vlastně funguje
Nemůže číst soubor `log.txt`. To bylo vyřešeno už dříve: Lua sandbox povoluje v režimu zápisu pouze `io.open` a hra stejně drží soubor logu otevřený výhradně otevřený. Nic v modu skriptu jej nemůže otevřít a zkopírovat. Takže místo čtení logu se extraktor nachází před funkcemi, které do něj *zapisují*. Při načítání zabalí `printError`, `printWarning`, celou rodinu `Logging` a filtrovaný `print`, uloží do vyrovnávací paměti vše, co jim je předáno, a při načítání tohoto bufferu jej vypíše. To funguje dobře. Při načítání s 1 200 mody zachytil 3 182 zpráv.
Proč mi tohle proklouzlo
Hooky neselhávají. Pokud by toto varování prošlo některou z těchto funkcí, leželo by v dumpu s ostatními třemi tisíci. Neprošlo. Takže nikdy neprošlo Lua. Načítání textur probíhá ve vrstvě C++ enginu, která zapisuje přímo do `log.txt`. V cestě není žádná Lua funkce, takže není co zalamovat. V kombinaci s nemožností zpětně přečíst log je zpráva skutečně nedostupná. Ne „těžko chytitelná“ nedostupná tímto designem.
Co dalšího patří do této kategorie
Cokoli, co engine zvládne sám, místo aby směroval přes skript:
problémy s formátováním a načítáním textur
Chyby načítání i3d
zprávy kompilace shaderů
Všechno, co Lua kód modu hlásí, je stále normálně zachyceno, což je velká většina toho, na čem skutečně záleží, když se snažíte najít nefunkční mod.
Praktické ponaučení
„0 chyb“ z extraktoru znamená „0 chyb, které Lua nahlásila“. To neznamená, že log je čistý. Toto rozlišení patří do souboru README, protože tester, který si ho přečte špatně, nahlásí mod jako v pořádku, i když v pořádku není.
Možná budoucí práce
Pokrytí této třídy by vyžadovalo zcela jiný mechanismus, který by přímo skenoval složku s mody a hledal textury v nezpracovaném formátu, místo aby čekal na stížnost enginu. Tím se zcela obejdeme v logu. Záleží na tom, zda je v sandboxu k dispozici seznam adresářů, což nebylo ověřeno. Stojí za zvážení, ale je to spíše nová funkce než oprava.
Just Joe
