Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

(Hinweis: Für SQL Logging der Version 3.13.8 oder früher bitte 34. lesen.)

Um alle SQL Statements zu loggen, müssen folgende Zeilen in der log4j.properties hinzugefügt werden:

...

Codeblock
#JDBCAppender
log4j.rootLogger= WARN, stdout, logfile, DB
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB.driver=org.postgresql.Driver
log4j.appender.DB.URL=jdbcUrl=jdbc\:postgresql\://datenbankip\:5432/postgres
log4j.appender.DB.user=nuclos
log4j.appender.DB.password=nuclos
log4j.appender.DB.sql=INSERT INTO <SCHEMA>.LOGS VALUES('%d{yyyy-MM-dd HH:mm:ss.SSS}','%c','%p','%m')
log4j.appender.DB.layout=org.apache.log4j.PatternLayout

Es ist zu empfehlen, den Log-Level möglichst hoch zu setzten (wie hier "WARN") damit die DB beim Loggin nicht überlastet wird. Durch entfernen von "stdout" oder "logfile" kann das Logging auf die DB selber beschränkt werden.

 

3) Auswertung der SQLTimer Werte aus der Datenbank

Mit "SQLTimer" werden die Angaben zur verbrauchten Zeit an die Message gehängt. Um diese einfacher auszuwerten, können folgende DB-Statements durchgeführt werden:

Codeblock
ALTER TABLE <SCHEMA>.LOGS ADD COLUMN TIME INTEGER

UPDATE <SCHEMA>.LOGS SET 
TIME = CAST(SUBSTRING(MESSAGE FROM POSITION('/' IN MESSAGE)+1 FOR POSITION(' ms' IN MESSAGE)-POSITION('/' IN MESSAGE)) AS INTEGER),
MESSAGE = SUBSTRING(MESSAGE FROM 0 FOR POSITION('/' IN MESSAGE))
WHERE LOGGER = 'SQLTimer'

Hinweis: Die Syntax der Statements ist PostgreSQL-Spezifisch. Für andere Datenbanken müssen die Statements angepasst werden.

 

4) Standard SQL Logging (3.13.8 oder früher)

...