-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-s
po-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Wed, 23 Jan 2013 18:24:17 +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>
<50fec8f3$0$1294$65785112@news.neostrada.pl>
<s...@j...net>
<510003dd$0$26682$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: 228
Message-ID: <51001cb4$0$1216$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 79.187.5.190
X-Trace: 1358961844 unt-rea-b-01.news.neostrada.pl 1216 79.187.5.190:59905
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.comp.programming:201794
[ ukryj 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
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 Gdańsk => Programista Kotlin <=
- 2025-07-07 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-07-07 Warszawa => International Freight Forwarder <=
- 2025-07-07 Warszawa => Java Developer <=
- 2025-07-07 Białystok => Software Engineer .Net <=