eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingProgramowanie a system operacyjnyRe: Programowanie a system operacyjny
  • Data: 2013-01-22 18:14:42
    Temat: Re: Programowanie a system operacyjny
    Od: darekm <d...@e...com> szukaj wiadomości tego autora
    [ pokaż wszystkie 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: