mingw: implement syslog

Syslog does not usually exist on Windows, so implement our own using
Window's ReportEvent mechanism.

Strings containing "%1" gets expanded into them selves by ReportEvent,
resulting in an unreadable string. "%2" and above is not a problem.
Unfortunately, on Windows an IPv6 address can contain "%1", so expand
"%1" to "% 1" before reporting. "%%1" is also a problem for ReportEvent,
but that string cannot occur in an IPv6 address.

Signed-off-by: Mike Pape <dotzenlabs@gmail.com>
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Mike Pape
2010-11-04 02:35:10 +01:00
committed by Junio C Hamano
parent 772991af40
commit 088d880247
5 changed files with 96 additions and 4 deletions

20
compat/win32/syslog.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef SYSLOG_H
#define SYSLOG_H
#define LOG_PID 0x01
#define LOG_EMERG 0
#define LOG_ALERT 1
#define LOG_CRIT 2
#define LOG_ERR 3
#define LOG_WARNING 4
#define LOG_NOTICE 5
#define LOG_INFO 6
#define LOG_DEBUG 7
#define LOG_DAEMON (3<<3)
void openlog(const char *ident, int logopt, int facility);
void syslog(int priority, const char *fmt, ...);
#endif /* SYSLOG_H */