ISO Datum mit rsyslog?

09/02/2011 - 17:16 von Ulli Horlacher | Report spam
Mit syslog-ng wars relativ einfach das Datumsformat zu aendern, aber wie
geht das mit rsyslogd?

Laut man-page (rsyslog.conf) gibt es nur die Variablen:
$YEAR $MONTH $DAY $HOUR $MINUTE
Sekunden fehlen also.

Das Standardformat ist RFC3339, das zwar auch ein ISO Datum ist, ich
moechte aber "$YEAR-$MONTH-$DAY $HOUR:$MINUTE:$SECOND" haben.

Vorschlaege?

Ullrich Horlacher Informationssysteme und Serverbetrieb
Rechenzentrum E-Mail: horlacher@rus.uni-stuttgart.de
Universitaet Stuttgart Tel: ++49-711-685-65868
Allmandring 30 Fax: ++49-711-682357
70550 Stuttgart (Germany) WWW: http://www.rus.uni-stuttgart.de/
 

Lesen sie die antworten

#1 Rainer Weikusat
09/02/2011 - 17:56 | Warnen spam
Ulli Horlacher writes:
Mit syslog-ng wars relativ einfach das Datumsformat zu aendern, aber wie
geht das mit rsyslogd?

Laut man-page (rsyslog.conf) gibt es nur die Variablen:
$YEAR $MONTH $DAY $HOUR $MINUTE
Sekunden fehlen also.

Das Standardformat ist RFC3339, das zwar auch ein ISO Datum ist, ich
moechte aber "$YEAR-$MONTH-$DAY $HOUR:$MINUTE:$SECOND" haben.

Vorschlaege?



Laut

http://linux.derkeiler.com/Mailing-...00097.html

gibt es ein (undokumentiertes) Datumsformat 'date-pgsql' das wohl
Deinen Vorstellungen enspricht. Der Code, der das umsetzt, ist
folgender:

int formatTimestampToPgSQL(struct syslogTime *ts, char *pBuf)
{
/* see note in formatTimestampToMySQL, applies here as well */
assert(ts != NULL);
assert(pBuf != NULL);

pBuf[0] = (ts->year / 1000) % 10 + '0';
pBuf[1] = (ts->year / 100) % 10 + '0';
pBuf[2] = (ts->year / 10) % 10 + '0';
pBuf[3] = ts->year % 10 + '0';
pBuf[4] = '-';
pBuf[5] = (ts->month / 10) % 10 + '0';
pBuf[6] = ts->month % 10 + '0';
pBuf[7] = '-';
pBuf[8] = (ts->day / 10) % 10 + '0';
pBuf[9] = ts->day % 10 + '0';
pBuf[10] = ' ';
pBuf[11] = (ts->hour / 10) % 10 + '0';
pBuf[12] = ts->hour % 10 + '0';
pBuf[13] = ':';
pBuf[14] = (ts->minute / 10) % 10 + '0';
pBuf[15] = ts->minute % 10 + '0';
pBuf[16] = ':';
pBuf[17] = (ts->second / 10) % 10 + '0';
pBuf[18] = ts->second % 10 + '0';
pBuf[19] = '\0';
return 19;
}
[runtime/datetime.c]

was dazu passen wuerde.

Ähnliche fragen