Avatar
Pleto
Redaktor
Avatar
Pleto:

Nazdar, rád by som vo svojom XNA projekte použil logovanie do súboru. Aký loger by ste mi poradili? Díky

 
Odpovědět 6.3.2013 15:23
Avatar
Pleto
Redaktor
Avatar
Pleto:

To mi naozaj nikto nevie poradiť nejaký vhodný loger pre XNA?

 
Nahoru Odpovědět 7.3.2013 15:51
Avatar
Luboš Běhounek (Satik):

Můžeš třeba použít můj:
http://pastebin.com/1ivGYNDM

Nahoru Odpovědět  +1 7.3.2013 15:56
:)
Avatar
Pleto
Redaktor
Avatar
Pleto:

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.

 
Nahoru Odpovědět 7.3.2013 16:19
Avatar
Kit
Redaktor
Avatar
Odpovídá na Pleto
Kit:

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í.

Nahoru Odpovědět 7.3.2013 16:32
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Pleto
Redaktor
Avatar
Odpovídá na Kit
Pleto:

tu ani nejde o úplné prevzatie, skôr o povolenie použiť a prispôsobiť si Satikovu prácu na "komerčný" účel

 
Nahoru Odpovědět 7.3.2013 16:48
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Pleto
David Čápka:

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.

Nahoru Odpovědět  +1 7.3.2013 17:00
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Pleto
Redaktor
Avatar
Odpovídá na David Čápka
Pleto:

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...

 
Nahoru Odpovědět 7.3.2013 17:10
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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 Pletovi 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.

Nahoru Odpovědět 7.3.2013 17:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Pleto
Luboš Běhounek (Satik):

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 :) .

Nahoru Odpovědět 7.3.2013 17:25
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Pleto
Kit:

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.

Nahoru Odpovědět 7.3.2013 17:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Pleto
Kit:

Pardon, použil jsem switch dle syntaxe Javy, tak si to případně uprav podle C#.

Nahoru Odpovědět 7.3.2013 17:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

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;
Nahoru Odpovědět  +1 7.3.2013 17:38
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

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.

Nahoru Odpovědět 7.3.2013 17:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Pleto
Redaktor
Avatar
Pleto:

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/

 
Nahoru Odpovědět 7.3.2013 23:00
Avatar
Kit
Redaktor
Avatar
Odpovídá na Pleto
Kit:

Co si představuješ pod pojmem "komerčné riešenie"? Zatím nevidím žádný důvod pro komerční řešení.

Nahoru Odpovědět 8.3.2013 10:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Pleto
Redaktor
Avatar
Odpovídá na Kit
Pleto:

Ja tiež nie, ale profesor vyžaduje využitie komerčných prostriedkov ako napíklad Log4Net, NLog, ...

Editováno 8.3.2013 11:07
 
Nahoru Odpovědět 8.3.2013 11:06
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Pleto
David Čápka:

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

Nahoru Odpovědět 8.3.2013 11:09
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Pleto
Redaktor
Avatar
Odpovídá na David Čápka
Pleto:

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...

 
Nahoru Odpovědět 8.3.2013 11:12
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Pleto
David Čápka:

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.

Nahoru Odpovědět 8.3.2013 11:22
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Pleto
Redaktor
Avatar
Odpovídá na David Čápka
Pleto:

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

 
Nahoru Odpovědět 8.3.2013 11:25
Avatar
Kit
Redaktor
Avatar
Odpovídá na Pleto
Kit:

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í.

Nahoru Odpovědět 8.3.2013 12:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Pleto
Redaktor
Avatar
Odpovídá na Kit
Pleto:

v jeho chápaní je komerčné všetko, čo si nenapíšem sám :)

 
Nahoru Odpovědět  +1 8.3.2013 13:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 23 zpráv z 23.