eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingProgramowanie a system operacyjnyRe: Programowanie a system operacyjny
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news1.cyf-kr.edu.pl!news.nas
    k.pl!news.nask.org.pl!news.internetia.pl!newsfeed.neostrada.pl!unt-exc-01.news.
    neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-ma
    il
    Date: Tue, 22 Jan 2013 18:14:42 +0100
    From: darekm <d...@e...com>
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20120907 Thunderbird/15.0.1
    MIME-Version: 1.0
    Newsgroups: pl.comp.programming
    Subject: Re: Programowanie a system operacyjny
    References: <kcgt7u$4un$1@speranza.aioe.org> <o...@s...asus>
    <s...@j...net> <kci839$i6n$1@opal.futuro.pl>
    <s...@j...net> <kck2ve$2ka$1@news.task.gda.pl>
    <s...@j...net> <kck82i$etd$1@news.task.gda.pl>
    <s...@j...net> <kckmog$dtn$1@mx1.internetia.pl>
    <s...@j...net> <kcmbj6$pv4$1@mx1.internetia.pl>
    <s...@j...net>
    <50f177d7$0$26694$65785112@news.neostrada.pl>
    <s...@j...net>
    In-Reply-To: <s...@j...net>
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 85
    Message-ID: <50fec8f3$0$1294$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 79.187.5.190
    X-Trace: 1358874867 unt-rea-a-02.news.neostrada.pl 1294 79.187.5.190:59669
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:201770
    [ ukryj nagłówki ]

    W dniu 2013-01-21 23:34, Stachu 'Dozzie' K. pisze:
    > On 2013-01-12, darekm <d...@e...com> wrote:
    >>
    >>> Proszę bardzo, jedziesz. Ja w Perlu robię tak:
    >>> #v+
    >>> $logger->warn(msg "coś się zepsuło",
    >>> file => $filename, errorcode => $?, warning => $msg);
    >>> #v-
    >>>
    >>> Masz obiekt loggera z metodą do wysyłania ostrzeżeń. Potrzebujesz podać:
    >>> 1) własny komunikat
    >>> 2) nazwę pliku, którego np. otwarcie sprawiło problem
    >>> 3) kod błędu (errno lub analogiczny)
    >>> 4) treść komunikatu od systemu
    >>> Uwagi:
    >>> * 4) może zawierać cokolwiek i nie masz nad tym kontroli
    >>> * wpis w logu ma być czytelny dla człowieka i maszyny
    >>> * masz w kodzie móc dodać kolejne pola ad-hoc, bez edycji w innych
    >>> plikach czy miejscach bieżącego pliku
    >>>
    >>
    >> Nie ma większego problemu, jest kilka metod na rozwiązanie w zależności
    >> od potrzeb. Może to boś ściśle typowane lub nie (variant, string). Czas
    >> życia komunikatu zarządzany ręcznie (obiekty) lub automatycznie
    >> (interface, open string, array of). Możesz mieć przeładowaną funkcję warn.
    >>
    >>
    >> stringi są w Delphi automatycznie zarządzane i efektywnie
    >> przekazywane. Podobnie dynamiczne tablice stringów. Parsowanie jest
    >> trywialne. Mam zbór funkcji które zbudują taki komunikat (tablica
    >> asocjacyjna) jak wskazałeś a sam logger w pełni asynchroniczny.
    >
    > Oczywiście. Drzewa zasłaniają ci las.
    >
    > Nie interesuje mnie czas życia tego stringa. Nie interesuje mnie
    > przeciążanie funkcji warn, zwłaszcza że ona powinna być biblioteczna.
    > To, co mnie interesuje, to definiowanie pól w komunikacie ad-hoc,
    > w miejscu, w którym tworzę komunikat. *Bez przygotowań*, w tym bez
    > deklarowania dodatkowych zmiennych tylko na potrzeby logowania.
    >

    Prawdopodobnie wcale nie interesuje Cie jakiekolwiek rozwiązanie tego
    problemu.

    Istotna jest jedynie elastyczność rozwiązania, komplikacja zapisu oraz
    uzyskany efekt. Nieistotne jest czy to jest funkcja biblioteczna, czy
    korzysta z takich czy innych konstrukcji językowych.

    Nie interesuje Cię czas życia, bo nie masz na to wpływu,
    nie interesuje Cię przeciążanie bo nie Perl nie ma takich możliwości

    A mnie nie interesuje aby była biblioteczna, bo mam różne oczekiwania co
    do logowania w zależności od rodzaju aplikacji/platformy.

    Ale mimo to przykładowa notacja (kilka wariantów):

    logger.warn( "coś się zepsuło"
    +'file'+FileName+eol
    +logger.param('errorcode,e.errorcode)
    +'obiekt=>'+logger.asAddress(myClass)
    +'warning=> uwaga');

    mogę przesłać wszystko, dowolną ilość pól,
    nic nie deklaruję
    mogę przesłać teksty i obiekty

    funkcja może być biblioteczna, z takiej czy innej biblioteki :
    rozmawiamy o możliwościach języka


    A mogę dołożyć własne wymagania:
    nazwie pliku musi zawsze towarzyszyć jego zawartość (albo analogicznie
    inna korelacja danych sprawdzana w momencie kompilacji: chodzi o to aby
    zminimalizować błędy niepełnego wysłania informacji do loggera)






    --
    Darek



Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: