-
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-02.news.
neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-ma
il
Date: Wed, 23 Jan 2013 16:38:18 +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>
In-Reply-To: <s...@j...net>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 176
Message-ID: <510003dd$0$26682$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 79.187.5.190
X-Trace: 1358955485 unt-rea-a-01.news.neostrada.pl 26682 79.187.5.190:60735
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.comp.programming:201787
[ ukryj nagłówki ]W dniu 2013-01-22 22:33, Stachu 'Dozzie' K. pisze:
> On 2013-01-22, 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
> [...]
>>> 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.
>
> Oczywiście że interesuje mnie. Interesuje mnie rozwiązanie problemu,
> który postawiłem. Mam utworzyć wpis i ten wpis posłać do miejsca
> składowania logów. Po co mi do tego zadania znać jest czas życia obiektu
> reprezentującego wpis?
Każdy byt ma swój czas życia, wpis również, tyle że czas niektórych
jest regulowany automatycznie, a innych ręcznie (przez programistę).
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
2. Sposób tworzenia wpisu jest nieistotny, istotna jest notacja poleceń
3. Możesz zdefiniować: "ma być czytelny dla człowieka i maszyny"
>
>> 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.
>
>> 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.
>
>> 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.
>
>> 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?
Nie ma problemu (ja nie mam) przekazania dowolnej struktury. XML, JSON
tak działa.
Nawet się nie upieram żeby ta
> struktura była zagnieżdżona. Nie będę nagle wprowadzać nowego warunku,
> skoro poprzednio o nim zapomniałem.
Nie ma problemu z zagnieżdżeniami, kwestia konwencji
>
> Powiedz mi, z jakiego powodu nie odtworzyłeś warunków zadania? Ze
> złośliwości?
Których warunków? Może czegoś nie wiesz i wydaje Ci się że czegoś nie
uzyskam. Albo udowodnij a nie wypisuj inwektyw.
Daj konkretny przykład czego nie da się przekazać. Tzn strukturę w
programie oraz oczekiwany wynik w logu.
Przez przeoczenie? Czy byłeś za głupi żeby zadanie
> zrozumieć? Wolałbym nie zakładać ostatniej możliwości, bo ta gałąź wątku
> byłaby bezsensowna od samego początku.
>
>> funkcja może być biblioteczna, z takiej czy innej biblioteki :
>> rozmawiamy o możliwościach języka
>
> O możliwościach języka, ale na podstawie konkretnego scenariusza użycia.
OK to podaj założenia i oczekiwany wynik.
>
>> 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)
>
> Da się zrobić. Tak, bez uruchomienia kodu (zakładając, że nie liczymy
> funkcji eval) i bez ręcznego parsowania Perla.
Może przytoczyć sposób rozwiązania?
Tylko że Perl nie jest
> statycznie typowany, you know. Nie był przewidziany do takich rzeczy.
>
No i co z tego że nie był przewidziany. Delphi też nie było a
dyskutujemy czy coś się da zrobić czy nie.
> 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ą.
--
Darek
Następne wpisy z tego wątku
- 23.01.13 17:16 Stachu 'Dozzie' K.
- 23.01.13 18:24 darekm
- 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
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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??
Najnowsze wątki
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-01 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-03-01 Zrobił TV OLED z TV LCD
- 2025-03-01 Gdynia => Sales Executive / KAM <=
- 2025-03-01 Błonie => Sales Specialist <=
- 2025-03-01 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-01 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-03-01 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=