1*86d7f5d3SJohn Marino /* $NetBSD: lvm-logging.h,v 1.1.1.2 2009/12/02 00:25:43 haad Exp $ */ 2*86d7f5d3SJohn Marino 3*86d7f5d3SJohn Marino /* 4*86d7f5d3SJohn Marino * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. 5*86d7f5d3SJohn Marino * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 6*86d7f5d3SJohn Marino * 7*86d7f5d3SJohn Marino * This file is part of LVM2. 8*86d7f5d3SJohn Marino * 9*86d7f5d3SJohn Marino * This copyrighted material is made available to anyone wishing to use, 10*86d7f5d3SJohn Marino * modify, copy, or redistribute it subject to the terms and conditions 11*86d7f5d3SJohn Marino * of the GNU Lesser General Public License v.2.1. 12*86d7f5d3SJohn Marino * 13*86d7f5d3SJohn Marino * You should have received a copy of the GNU Lesser General Public License 14*86d7f5d3SJohn Marino * along with this program; if not, write to the Free Software Foundation, 15*86d7f5d3SJohn Marino * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16*86d7f5d3SJohn Marino */ 17*86d7f5d3SJohn Marino 18*86d7f5d3SJohn Marino #ifndef _LVM_LOGGING_H 19*86d7f5d3SJohn Marino #define _LVM_LOGGING_H 20*86d7f5d3SJohn Marino 21*86d7f5d3SJohn Marino void print_log(int level, const char *file, int line, int dm_errno, 22*86d7f5d3SJohn Marino const char *format, ...) 23*86d7f5d3SJohn Marino __attribute__ ((format(printf, 5, 6))); 24*86d7f5d3SJohn Marino 25*86d7f5d3SJohn Marino #define LOG_LINE(l, x...) \ 26*86d7f5d3SJohn Marino print_log(l, __FILE__, __LINE__ , 0, ## x) 27*86d7f5d3SJohn Marino 28*86d7f5d3SJohn Marino #define LOG_LINE_WITH_ERRNO(l, e, x...) \ 29*86d7f5d3SJohn Marino print_log(l, __FILE__, __LINE__ , e, ## x) 30*86d7f5d3SJohn Marino 31*86d7f5d3SJohn Marino #include "log.h" 32*86d7f5d3SJohn Marino 33*86d7f5d3SJohn Marino typedef void (*lvm2_log_fn_t) (int level, const char *file, int line, 34*86d7f5d3SJohn Marino int dm_errno, const char *message); 35*86d7f5d3SJohn Marino 36*86d7f5d3SJohn Marino void init_log_fn(lvm2_log_fn_t log_fn); 37*86d7f5d3SJohn Marino 38*86d7f5d3SJohn Marino void init_indent(int indent); 39*86d7f5d3SJohn Marino void init_msg_prefix(const char *prefix); 40*86d7f5d3SJohn Marino 41*86d7f5d3SJohn Marino void init_log_file(const char *log_file, int append); 42*86d7f5d3SJohn Marino void init_log_direct(const char *log_file, int append); 43*86d7f5d3SJohn Marino void init_log_while_suspended(int log_while_suspended); 44*86d7f5d3SJohn Marino 45*86d7f5d3SJohn Marino void fin_log(void); 46*86d7f5d3SJohn Marino void release_log_memory(void); 47*86d7f5d3SJohn Marino 48*86d7f5d3SJohn Marino void init_syslog(int facility); 49*86d7f5d3SJohn Marino void fin_syslog(void); 50*86d7f5d3SJohn Marino 51*86d7f5d3SJohn Marino int error_message_produced(void); 52*86d7f5d3SJohn Marino void reset_lvm_errno(int store_errmsg); 53*86d7f5d3SJohn Marino int stored_errno(void); 54*86d7f5d3SJohn Marino const char *stored_errmsg(void); 55*86d7f5d3SJohn Marino 56*86d7f5d3SJohn Marino /* Suppress messages to stdout/stderr (1) or everywhere (2) */ 57*86d7f5d3SJohn Marino /* Returns previous setting */ 58*86d7f5d3SJohn Marino int log_suppress(int suppress); 59*86d7f5d3SJohn Marino 60*86d7f5d3SJohn Marino /* Suppress messages to syslog */ 61*86d7f5d3SJohn Marino void syslog_suppress(int suppress); 62*86d7f5d3SJohn Marino 63*86d7f5d3SJohn Marino #endif 64