ls->regnum = -1;
return 1;
}
+
+void
+log_set_format(struct log_stream *ls, uns mask, uns data)
+{
+ ls->msgfmt = (ls->msgfmt & mask) | data;
+ CLIST_FOR_EACH(simp_node *, i, ls->substreams)
+ log_set_format(i->p, mask, data);
+}
{
struct log_stream *ls = log_new_syslog(LOG_USER, "syslog");
msg(L_INFO | ls->regnum, "Brum <%300s>", ":-)");
+ log_set_format(log_default_stream(), ~0U, LSFMT_USEC);
+ msg(L_INFO, "Brum <%300s>", ":-)");
return 0;
}
/* return number of deleted entries */
int log_rm_substream(struct log_stream *where, struct log_stream *what);
+/* Set formatting flags of a given stream and all its substreams. The flags are
+ * ANDed with @mask and ORed with @data. */
+void log_set_format(struct log_stream *ls, uns mask, uns data);
+
/* get a stream by its number (regnum) */
/* returns NULL for free numbers */
/* defaults to ls_default_stream for 0 when stream number 0 not set */
struct log_stream *log_stream_by_flags(uns flags);
+static inline struct log_stream *log_default_stream(void)
+{
+ return log_stream_by_flags(0);
+}
+
/* process a message (string) (INTERNAL) */
/* depth prevents undetected looping */
/* returns 1 in case of loop detection or other fatal error