Re: Logger in Tabelle und/oder auf cli

"Thiemo Kellner, NHC Barhufpflege" <[email protected]> Wed, 09 Mar 2016 09:39:55 +0100
Newsgroups gmane.comp.db.postgresql.german
Message-ID <[email protected]>
Danilo, danke für Deine Antwort. Raise schreibt auch ins Serverlog,  
was ich nicht möchte, um es nicht zu verschmutzen. Abgesehen davon  
habe ich keine Kontrolle, was alles geschrieben wird, abgesehen von  
der Meldung selbst. Am meisten vermisse ich da, dass der Erzeuger, zum  
Beispiel die Function, aus der der Eintrag kommt, nicht erfasst wird.

Mit meiner Arbeit mit Oracle habe ich es sehr schätzen gelernt, dass  
der von mir erwähnte Logger in eine Tabelle schreibt. Zur Entwicklung  
war die Kommandozeilenausgabe sehr praktisch, im Betrieb aber konnte  
diese Häufig nicht genutzt werden, zum Beispiel, weil der Aufruf  
innerhalb von PowerCenter erfolgte.

PL/Python zu verwenden bin ich zögerlich, weil zu dessen Nutzung  
erhebliche Privilegien erforderlich sind. PL/TCL möchte ich nicht  
nehmen, weil ich TCL nicht neu lernen möchte und PL/Perl nicht, weil  
mir Perl zu kryptisch sein kann.

Zitat von DaniloE <[email protected]>:

> Hi Thiemo,
>
> ich frag mal das offensichtliche:
>
> meinst du sowas hier?
> http://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html
>
> Das wäre die einfachste Möglichkeit, eine Nachricht (ins  
> Applikationslog) zu schreiben.
>
> Ansonsten wäre es natürlich noch eine Möglichkeit in z.B. PL/Python  
> dir eine kleine Funktion zu schreiben, die dir in eine bestimmte  
> Datei loggt. das sind geschätzt keine 20 Zeilen Code. Ich kann dir  
> da bei Bedarf auch gern was kurzes zukommen lassen.
>
> Wäre dann sowas wie:
> pyraise('ERROR','Alles kaputt','/var/log/pyraise/common.log')
>
> Kannst du natürlich auch auf eine Tabelle basteln.
>
> Eine in PostgreSQL native Möglichkeit kann ich dir hier leider nicht nennen.
>
> DaniloE
>
> Am 08.03.2016 um 19:36 schrieb Thiemo Kellner, NHC Barhufpflege:
>> @Andreas und Hans
>>
>> Ich möchte NICHT die Änderungen von Daten in Tabellen  
>> protokollieren sondern aus einer der PL-Sprachen Informationen auf  
>> die Kommandozeile und/oder in eine Logging-Tabelle schreiben.  
>> Folgend ein Ausschnitt aus einem Oracle-Package. Die  
>> Procedure-Aufrufe TRACE, DEBUG, INFO, WARN, ERROR, FATAL ist das  
>> worum es mir geht.
>>
>>         function GET_CHAR_DIFF_CLASSES(
>>               P_STRING_A                       varchar2,
>>               P_STRING_B                       varchar2,
>>               P_LOG_LEVEL PKG_PLNSQL_LOGGER.GT_LOG_LEVEL
>>                  := 'INFO',
>>               P_DO_LOG_2_DBMS_OUTPUT           boolean := false,
>>               P_DO_CACHE_OVERRIDE              boolean := false,
>>               P_DO_TRUNCATE_LOG_TABLE          boolean := false
>>         ) return GT_CHARACTER_POSITIONS is
>
>
>
> -- 
> Sent via pgsql-de-allgemein mailing list ([email protected])
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-de-allgemein
>



-- 
Auf Gelassene Pferde kann man bauen!
+49 (0)1578-772 37 37
+41 (0)78 947 36 21
sip: [email protected]
http://www.gelassene-pferde.biz
Mitglied bei http://www.keep-it-natural.org
Öffentlicher PGP-Schlüssel:  
http://pgp.mit.edu/pks/lookup?op=get&search=0x8F70EFD2D972CBEF

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)

iEYEABECAAYFAlbf4VsACgkQj3Dv0tlyy++ATgCgqbAJTBo4sEFT+I8qMI1gNWr/
wasAnRvw3njomfZO0RaN0dRMacc8SQbZ
=1pxY
-----END PGP SIGNATURE-----