-
Data: 2013-01-23 16:38:18
Temat: Re: Programowanie a system operacyjny
Od: darekm <d...@e...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- 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
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-16 Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- 2025-06-16 Warszawa => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-06-16 Warszawa => Software Engineer .Net <=
- 2025-06-16 Warszawa => Inżynier oprogramowania .Net <=
- 2025-06-16 Warszawa => IT Data Analyst (Power BI) <=
- 2025-06-16 Warszawa => Spedytor Międzynarodowy <=
- 2025-06-16 Gdynia => MLOps Engineer <=
- 2025-06-16 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-06-16 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-06-16 Warszawa => Dyrektor Sprzedaży (rozwiązania Cloud) <=
- 2025-06-16 Re: Płonie 3000 elektryków u wybrzeży Alaski
- 2025-06-16 Re: Tesla z najnowszym FSD potrafi przejechać dziecko i... pojechać dalej.
- 2025-06-15 Re: Kolejny expierd usiłuje wmówić błąd pilota wadliwego Boeinga
- 2025-06-14 Re: Boeing, który rozbił się w Indiach to był latający złom, bez serwisowania [złom,bo,Air,India,v.,złom,bo,Boening]
- 2025-06-14 Re: Boeing, który rozbił się w Indiach to był latający złom, bez serwisowania [złom,bo,Air,India,v.,złom,bo,Boening]