-
Data: 2013-01-23 18:24:17
Temat: Re: Programowanie a system operacyjny
Od: darekm <d...@e...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]>> Szczególnie jest to istotne przy wołaniach asynchronicznych. Gdy chcę
>> aby rzeczywisty wpis do pliku odbywał się poza ścieżką krytyczną, gdy
>> jest więcej czasu.
>>
>> Poza tym piszesz:
>> "Mam utworzyć wpis i ten wpis posłać do miejsca składowania logów"
>>
>> Rozumiem że:
>> 1. Do miejsca składowania logów posyłam tylko teksty
>
> Skąd ten pomysł? Gdzieś to napisałem?
Nie napisałeś więc się dopytuję co pod tym rozumiesz, bo możliwości jest
wiele.
Może doucz się trochę, mój drogi?
miłe
> Ten ruch się nazywa "structured logging".
>
O coś takiego chodzi
http://gregoryszorc.com/blog/category/logging/
czy to:
http://plumberjack.blogspot.com/2012/03/structured-l
ogging.html
i to nie jest tekst?
>> 2. Sposób tworzenia wpisu jest nieistotny, istotna jest notacja poleceń
>
> Generalnie tak. Użycie loggera ma być tak łatwe dla programisty, jak to
> tylko możliwe.
OK
Utworzenie specjalnej klasy dla wpisu, a potem utworzenie
> instancji takiej klasy jest zbyt pracochłonne (m.in. dlatego, że to
> wymaga otwarcia dodatkowego miejsca z definicją klasy przy dodawaniu
> informacji).
nie rozumiem, jakie dodatkowe miejsce, jak utworzenie instancji klasy
może być pracochłonne
>
>> 3. Możesz zdefiniować: "ma być czytelny dla człowieka i maszyny"
>
> Człowiek ma być w stanie skorzystać z takiego wpisu.
> Maszyna ma być w stanie przetwarzać zestawy takich wpisów.
To nie jest definicja tylko życzenie.
Co to dla Ciebie znaczy przetwarzać. Ja mogę przetwarzać dowolnie tekst
i binarkę, wystarczy że jest ustalona struktura.
>
> Ale specjalnie dla ciebie rozjaśnię, co ludzie rozumieją zwykle pod tymi
> pojęciami.
Dziękuję
>
> Binarne formaty serializacji danych nie nadają się, bo człowiek nie jest
> w stanie ich odczytać bez pomocy dodatkowych narzędzi.
> Binarne formaty serializacji zapisane w formie tekstowej się nie nadają,
> bo człowiek nie jest w stanie odczytać *treści* komunikatu, jedynie jego
> *kontener*.
To co się nadaje, możesz wkleić fragment.
> Twój ręcznie poskładany string się nie nadaje, bo jest niejednoznaczny.
> Istnieje wiele wiadomości, które dają wpis o takiej samej formie.
>
Skąd wiesz, podaj przykład.
>>>> Istotna jest jedynie elastyczność rozwiązania, komplikacja zapisu oraz
>>>> uzyskany efekt. Nieistotne jest czy to jest funkcja biblioteczna,
>>>
>>> Nieistotne? Powiedziałbym że całkiem ważne. Ja nie chcę *pisać* loggera,
>>> ja chcę go *użyć*. Znaczy -- powinien pochodzić z gotowej biblioteki.\
>>
>> Dla mnie nieistotne.
>
> Bo?
Bo nie o tym rozmawiamy.
>
>>>> 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
>>>
>>> Perl nie ma możliwości przeciążania? Mówisz o wywoływaniu funkcji
>>> z różnymi typami parametrów czy o zmianie znaczenia operatorów
>>> zdefiniowanych w języku dla własnych typów? Bo oba w Perlu występują
>>> i nie wiem do czego pijesz.
>>
>> Mówię o różnych funkcjach dla różnych parametrów przy tej samej nazwie.
>
> Aha. No to ma.
Pokaż
>
>>>> A mnie nie interesuje aby była biblioteczna, bo mam różne oczekiwania co
>>>> do logowania w zależności od rodzaju aplikacji/platformy.
>>
>>
>>>
>>> A jakie, że nie da się tego zawrzeć w bibliotece? Ja sobie takich nie
>>> wyobrażam, ale ja głównie piszę daemony i programy wierszopoleceniowe,
>>> więc mam dość wąską perspektywę.
>>
>> Pewnie dlatego. Oprócz powyższych mam jeszcze webowe i desktopowe.
>
> I uważasz że biblioteka loggera nie poradzi sobie z tym? Możesz
> uzasadnić swoje stanowisko?
>
To jest dywagowanie, a tu zupełnie zmieniasz kontekst. Dlaczego mam
udowadniać że twój logger zrobi to co ja potrzebuję. Do tego pewnie samo
pojęcie biblioteki jest inne w Delphi i w Perlu.
>>>> 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
>>>
>>> Ah so. I twoim zdaniem taki ręcznie sklejony string jest *równoważny*
>>> przekazaniu loggerowi wpisu ze strukturą?
>>
>> A nie jest?
>
> OCZYWIŚCIE ŻE NIE JEST. Jest niejednoznaczny, to po pierwsze.
Skąd wiesz. Co na to wskazuje.
W analogiczny sposób składam pliki do podpisu elektronicznego i są
jednoznaczne.
Po drugie,
> żeby logger skorzystał ze struktury wiadomości musiałby specjalnie
> parsować twojego ręcznie sklejonego stringa.
oczywiście, Twoje biblioteki to również robią.
poza tym ustaliliśmy że nieistotne jest co się dzieje w środku loggera -
nieprawdaż?
Po trzecie, twój przykład
> wygląda jak psu z gardła przez ten płotek konkatenacji, chociaż to już
> moje osobiste uprzedzenie do tego typu konstrukcji.
To sobie podaruj uprzedzenia, ja nie mówię o swoich.
>
>> Nie ma problemu (ja nie mam) przekazania dowolnej struktury. XML, JSON
>> tak działa.
>
> Ale to programista musi nakarmić logger takim JSON-em.
nie, wystarczy przyozdobić poszczególne parametry funkcją formatującą,
to nie jest pracochłonne
W perlowym
> rozwiązaniu, które podałem jako referencję, to konfiguracja loggera
> wybiera, w jakiej formie będzie zapisany log.
Oczywiście, u mnie również
A logger jest
> konfigurowany już przez administratora, nie programistę.
Rzecz umowna, każdy program może mieć swoją konfigurację.
>
>>> Zresztą jestem ciekawy, jak chcesz to zrobić w Delphi utrzymując moje
>>> wymagania (głównie możliwość dokładania pól ad-hoc), a tym bardziej przy
>>> twojej propozycji w postaci klejenia stringa, który jest potem
>>> przekazywany loggerowi.
>>>
>>
>> 1. mogę zdefiniować szereg funkcji z jednym parametrem ogólnym oraz
>> dodatkowymi konkretnymi (pierwsza ma zero typowanych)
>>
>> 2.mogę zdefiniować tag o konkretnej strukturze i wprowadzać go
>> zdefiniowaną funkcją.
>
> I które z tych dwóch pozwoli mi uruchomić logger.warn() z parą
> ("foobar", "a, b c\nDEF\txxx\", ;'") bez przeciążania logger.warn() na
> okoliczność obecności "foobar"?
>
dlaczego bez przeciążania - wprowadzasz sztuczne ograniczenia które
nie wynikają z efektywności programowania ani rezultatów
zazwyczaj nie pisze się tekstem, tylko używa zmiennych, przy silnym
typowaniu nie ma problemu rozróżnić funkcji logowania
mogę też zapisać tak
logger.warn(msg
+ logger.asFile("foobar", "a, b c\nDEF\txxx\", ;'"));
--
Darek
Następne wpisy z tego wątku
- 23.01.13 19:21 R.e.m.e.K
- 23.01.13 19:49 Stachu 'Dozzie' K.
- 23.01.13 20:00 Stachu 'Dozzie' K.
- 23.01.13 20:41 R.e.m.e.K
- 23.01.13 21:07 Stachu 'Dozzie' K.
- 24.01.13 12:44 darekm
- 26.01.13 13:57 Roman W
- 26.01.13 14:00 Roman W
- 27.01.13 00:07 Andrzej Jarzabek
- 27.01.13 00:49 Wojciech Muła
- 27.01.13 01:49 Roman W
- 27.01.13 01:50 Andrzej Jarzabek
- 27.01.13 01:51 Roman W
- 27.01.13 01:56 Andrzej Jarzabek
- 27.01.13 13:33 Roman W
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=