Diskuze: logovanie
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 23 zpráv z 23.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
To mi naozaj nikto nevie poradiť nejaký vhodný loger pre XNA?
Můžeš třeba použít můj:
http://pastebin.com/1ivGYNDM
díky, vyzerá to dobre. Dúfam že ti nebude vadiť, keď to použijem v hre do školy? Samozrejme to použijem ako tvoju prácu a uvediem ťa buď v credits, alebo v dokumentácii.
Nemyslím si, že je úplně vhodné to převzít. Podle mne je lepší se tím jen nechat inspirovat a vytvořit si vlastní logování podle vlastních potřeb. Osobně bych to asi udělal o něco jednodušeji, uvedené řešení se mi jeví hodně komplexní.
tu ani nejde o úplné prevzatie, skôr o povolenie použiť a prispôsobiť si Satikovu prácu na "komerčný" účel
Logování do souboru je jen o appendování řádku, ne? Co je na tom těžkého? Pokud pracuješ na hře, logger máš napsaný za pár minut.
Tu ale nejde o to, že to nie je problém naprogramovať sám, ale moja pôvodná otázka znela Aký loger by ste mi poradili? Očakával som nejaké komerčné riešenie, ktoré sa vám osvedčilo pri XNA...
Luboš Běhounek Satik do svého kódu zahrnul i možnosti přepínání režimu, což je docela užitečné a Neaktivní uživatelvi se to zřejmě líbí.
Také si myslím, že by se to dalo napsat jednodušeji, ale každý máme trochu jiný styl.
Použít to samozřejmě můžeš, jinak bych to sem nedával
Způsobů, jak logy zapisovat je spousta, já si vybral tenhle, má asi nejmenší režii.
Více by se mi třeba líbilo, kdyby byly 4 úrovně logovaných informací -
info, warning, error a fatal a podle toho se pak dalo filtrovat nebo nechalo
přepínat, jak detailně má zapisovat, ale s tím jsem se zrovna nechtěl
babrat, když jsem to asi před rokem psal .
Samozřejmě, že nepotřebné věci může vyházet a co mu chybí si
doprogramovat, tenhle používám ve své XNA strategii a vyhovuje mi .
Například místo
if (logType == LogType.FILE || logType == LogType.CONSOLEANDFILE)
{
logFile(log);
}
if (logType == LogType.CONSOLE || logType == LogType.CONSOLEANDFILE)
{
logConsole(log);
}
bych určitě použil raději
switch (logType) {
FILE:
logFile(log);
break;
CONSOLE:
logConsole(log);
break;
CONSOLEANDFILE:
logConsole(log);
logFile(log);
break;
}
a to nejen kvůli rychlosti, ale prostě proto, že se mi to jeví přehlednější. Každý programujeme svým stylem a pokud do svého programu začleňujeme kusy programů od jiných autorů, po čase je problém se v tom vyznat.
Proto si myslím, že by sis měl logování napsat po svém. Satik ti poskytl materiál pro inspiraci. Nic na tom není. Komerční řešení nehledej, udělej si ho.
Pardon, použil jsem switch dle syntaxe Javy, tak si to případně uprav podle C#.
Teď bych tuhle část kódu napsal jinak, upravil bych ten enum:
public enum LogType
{
FILE = 1, // logging to file
CONSOLE = 2, // logging to console
MAIL = 4, // logging by třeba mail :)
}
a pak používal normálně binární logiku:
if (logType & LogType.FILE > 0)
logFile(log);
if (logType & LogType.CONSOLE > 0)
logConsole(log);
if (logType & LogType.MAIL > 0)
logMail(log);
a když bych chtěl logovat obojí, tak bych jen zadal
logType = LogType.FILE | LogType.CONSOLE;
Jistě, i tak to jde. De facto jsi výčet nahradil množinou. Ještě bys ho mohl nahradit seznamem, ale to by se hodilo spíš pro Python.
Díky ešte raz všetkým, ktorí si dali tú námahu, ale po dnešnom večernom rozhovore s profesorom si budem musieť aj tak nájsť komerčné riešenie. Vidím to teda s najväčšou pravdepodobnosťou na NLog http://nlog-project.org/
Co si představuješ pod pojmem "komerčné riešenie"? Zatím nevidím žádný důvod pro komerční řešení.
Ja tiež nie, ale profesor vyžaduje využitie komerčných prostriedkov ako napíklad Log4Net, NLog, ...
Nevím, proč bys měl platit za zapsání řádku do souboru, je to úplný nesmysl. Navíc .NET má i něco podobného v sobě: http://msdn.microsoft.com/…s.trace.aspx
on samozrejme nevyžaduje používanie platených vecí, len proste chce aby sme nezabíjali čas programovaním už naprogramovaných vecí a teda aby sme využívali už hotové riešenia...
Jedno hotové řešení má přímo .NET, poslal jsem ti ho. Ta třída by měla 100 řádků, zatím co to tu řešíš bys ji měl hotovou.
Ja už to od včera neriešim, len odpovedám na vaše otázky Už tam mám importnutý NLog. Ale
aj tak dík
V tom případě po vás nechce jen komerční řešení, ale vyhovuje i Open Source nebo Public Domain. NLog má licenci BSD, která také není komerční.
v jeho chápaní je komerčné všetko, čo si nenapíšem sám
Zobrazeno 23 zpráv z 23.