struct ctdb_log_state *ctdb_fork_with_logging(TALLOC_CTX *mem_ctx,
struct ctdb_context *ctdb,
+ const char *log_prefix,
void (*logfn)(const char *, uint16_t, void *),
void *logfn_private, pid_t *pid);
struct ctdb_log_state {
struct ctdb_context *ctdb;
+ const char *prefix;
int fd, pfd;
char buf[1024];
uint16_t buf_used;
const char *buf, unsigned int len)
{
if (script_log_level <= LogLevel) {
- do_debug("%*.*s\n", len, len, buf);
+ if (log != NULL && log->prefix != NULL) {
+ do_debug("%s: %*.*s\n", log->prefix, len, len, buf);
+ } else {
+ do_debug("%*.*s\n", len, len, buf);
+ }
/* log it in the eventsystem as well */
if (log->logfn)
log->logfn(log->buf, len, log->logfn_private);
if (!(flags & EVENT_FD_READ)) {
return;
}
-
+
n = read(log->pfd, &log->buf[log->buf_used],
sizeof(log->buf) - log->buf_used);
if (n > 0) {
*/
struct ctdb_log_state *ctdb_fork_with_logging(TALLOC_CTX *mem_ctx,
struct ctdb_context *ctdb,
+ const char *log_prefix,
void (*logfn)(const char *, uint16_t, void *),
void *logfn_private, pid_t *pid)
{
log = talloc_zero(mem_ctx, struct ctdb_log_state);
CTDB_NO_MEMORY_NULL(ctdb, log);
log->ctdb = ctdb;
+ log->prefix = log_prefix;
log->logfn = logfn;
log->logfn_private = (void *)logfn_private;