186d7f5d3SJohn Marino /* $NetBSD: lvm-logging.h,v 1.1.1.2 2009/12/02 00:25:43 haad Exp $ */ 286d7f5d3SJohn Marino 386d7f5d3SJohn Marino /* 486d7f5d3SJohn Marino * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. 586d7f5d3SJohn Marino * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 686d7f5d3SJohn Marino * 786d7f5d3SJohn Marino * This file is part of LVM2. 886d7f5d3SJohn Marino * 986d7f5d3SJohn Marino * This copyrighted material is made available to anyone wishing to use, 1086d7f5d3SJohn Marino * modify, copy, or redistribute it subject to the terms and conditions 1186d7f5d3SJohn Marino * of the GNU Lesser General Public License v.2.1. 1286d7f5d3SJohn Marino * 1386d7f5d3SJohn Marino * You should have received a copy of the GNU Lesser General Public License 1486d7f5d3SJohn Marino * along with this program; if not, write to the Free Software Foundation, 1586d7f5d3SJohn Marino * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1686d7f5d3SJohn Marino */ 1786d7f5d3SJohn Marino 1886d7f5d3SJohn Marino #ifndef _LVM_LOGGING_H 1986d7f5d3SJohn Marino #define _LVM_LOGGING_H 2086d7f5d3SJohn Marino 2186d7f5d3SJohn Marino void print_log(int level, const char *file, int line, int dm_errno, 2286d7f5d3SJohn Marino const char *format, ...) 2386d7f5d3SJohn Marino __attribute__ ((format(printf, 5, 6))); 2486d7f5d3SJohn Marino 2586d7f5d3SJohn Marino #define LOG_LINE(l, x...) \ 2686d7f5d3SJohn Marino print_log(l, __FILE__, __LINE__ , 0, ## x) 2786d7f5d3SJohn Marino 2886d7f5d3SJohn Marino #define LOG_LINE_WITH_ERRNO(l, e, x...) \ 2986d7f5d3SJohn Marino print_log(l, __FILE__, __LINE__ , e, ## x) 3086d7f5d3SJohn Marino 3186d7f5d3SJohn Marino #include "log.h" 3286d7f5d3SJohn Marino 3386d7f5d3SJohn Marino typedef void (*lvm2_log_fn_t) (int level, const char *file, int line, 3486d7f5d3SJohn Marino int dm_errno, const char *message); 3586d7f5d3SJohn Marino 3686d7f5d3SJohn Marino void init_log_fn(lvm2_log_fn_t log_fn); 3786d7f5d3SJohn Marino 3886d7f5d3SJohn Marino void init_indent(int indent); 3986d7f5d3SJohn Marino void init_msg_prefix(const char *prefix); 4086d7f5d3SJohn Marino 4186d7f5d3SJohn Marino void init_log_file(const char *log_file, int append); 4286d7f5d3SJohn Marino void init_log_direct(const char *log_file, int append); 4386d7f5d3SJohn Marino void init_log_while_suspended(int log_while_suspended); 4486d7f5d3SJohn Marino 4586d7f5d3SJohn Marino void fin_log(void); 4686d7f5d3SJohn Marino void release_log_memory(void); 4786d7f5d3SJohn Marino 4886d7f5d3SJohn Marino void init_syslog(int facility); 4986d7f5d3SJohn Marino void fin_syslog(void); 5086d7f5d3SJohn Marino 5186d7f5d3SJohn Marino int error_message_produced(void); 5286d7f5d3SJohn Marino void reset_lvm_errno(int store_errmsg); 5386d7f5d3SJohn Marino int stored_errno(void); 5486d7f5d3SJohn Marino const char *stored_errmsg(void); 5586d7f5d3SJohn Marino 5686d7f5d3SJohn Marino /* Suppress messages to stdout/stderr (1) or everywhere (2) */ 5786d7f5d3SJohn Marino /* Returns previous setting */ 5886d7f5d3SJohn Marino int log_suppress(int suppress); 5986d7f5d3SJohn Marino 6086d7f5d3SJohn Marino /* Suppress messages to syslog */ 6186d7f5d3SJohn Marino void syslog_suppress(int suppress); 6286d7f5d3SJohn Marino 6386d7f5d3SJohn Marino #endif 64