summaryrefslogtreecommitdiffstats
path: root/syslog_tst.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2004-11-08 13:52:36 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2004-11-08 13:52:36 +0000
commit05f2f1839c2712ca77e86aa679dc909d051fc23b (patch)
treeff48843fbfd9c4a7cdf3c16609247f9ef3166f40 /syslog_tst.c
downloadrsyslog-05f2f1839c2712ca77e86aa679dc909d051fc23b.tar.gz
rsyslog-05f2f1839c2712ca77e86aa679dc909d051fc23b.tar.xz
rsyslog-05f2f1839c2712ca77e86aa679dc909d051fc23b.zip
Initial revision
Diffstat (limited to 'syslog_tst.c')
-rw-r--r--syslog_tst.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/syslog_tst.c b/syslog_tst.c
new file mode 100644
index 00000000..ca786018
--- /dev/null
+++ b/syslog_tst.c
@@ -0,0 +1,74 @@
+/* Program to test daemon logging. */
+
+/*
+ * Sat Dec 11 12:07:50 CST 1993: Dr. Wettstein
+ * Compiles clean with -Wall. Renamed for first public distribution.
+ * Use this freely but if you make a ton of money with it I
+ * expect a cut... :-)
+ *
+ * Thu Jan 6 11:52:10 CST 1994: Dr. Wettstein
+ * Added support for reading getting log input from the standard
+ * input. To activate this use a - as the single arguement to the
+ * the program. Note that there is a hack in the code to pause
+ * after each 1K has been written. This eliminates what appears
+ * to be a problem with overrunning a UNIX domain socket with
+ * excessive amounts of input.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <syslog.h>
+#include <unistd.h>
+#include <sys/param.h>
+
+extern int main(int, char **);
+
+
+int main(int argc, char *argv[])
+{
+ auto char *nl,
+ bufr[512];
+ auto int logged = 0;
+
+ openlog("DOTEST", LOG_PID, LOG_DAEMON);
+ if (argc > 1)
+ {
+ if ( (*argv[1] == '-') && (*(argv[1]+1) == '\0') )
+ {
+ while (!feof(stdin))
+ if ( fgets(bufr, sizeof(bufr), stdin) != \
+ (char *) 0 )
+ {
+ if ( (nl = strrchr(bufr, '\n')) != \
+ (char *) 0)
+ *nl = '\0';
+ syslog(LOG_INFO, bufr);
+ logged += strlen(bufr);
+ if ( logged > 1024 )
+ {
+ sleep(1);
+ logged = 0;
+ }
+
+ }
+ }
+ else
+ while (argc-- > 1)
+ syslog(LOG_INFO, argv++[1]);
+ }
+ else
+ {
+ syslog(LOG_EMERG, "EMERG log.");
+ syslog(LOG_ALERT, "Alert log.");
+ syslog(LOG_CRIT, "Critical log.");
+ syslog(LOG_ERR, "Error log.");
+ syslog(LOG_WARNING, "Warning log.");
+ syslog(LOG_NOTICE, "Notice log.");
+ syslog(LOG_INFO, "Info log.");
+ syslog(LOG_DEBUG, "Debug log.");
+ closelog();
+ return(0);
+ }
+
+ return(0);
+}