2 * Define Message Types for Bacula
8 Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
10 This program is free software; you can redistribute it and/or
11 modify it under the terms of the GNU General Public License as
12 published by the Free Software Foundation; either version 2 of
13 the License, or (at your option) any later version.
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 General Public License for more details.
20 You should have received a copy of the GNU General Public
21 License along with this program; if not, write to the Free
22 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
41 * Most of these message levels are more or less obvious.
42 * They have evolved somewhat during the development of Bacula,
43 * and here are some of the details of where I am trying to
44 * head (in the process of changing the code) as of 15 June 2002.
46 * M_ABORT Bacula immediately aborts and tries to produce a traceback
47 * This is for really serious errors like segmentation fault.
48 * M_ERROR_TERM Bacula immediately terminates but no dump. This is for
49 * "obvious" serious errors like daemon already running or
50 * cannot open critical file, ... where a dump is not wanted.
51 * M_TERM Bacula daemon shutting down because of request (SIGTERM).
53 * The remaining apply to Jobs rather than the daemon.
55 * M_FATAL Bacula detected a fatal Job error. The Job will be killed,
56 * but Bacula continues running.
57 * M_ERROR Bacula detected a Job error. The Job will continue running
58 * but the termination status will be error.
59 * M_WARNING Job warning message.
60 * M_INFO Job information message.
62 * M_RESTORED An ls -l of each restored file.
66 #define M_DEBUG 1 /* debug message */
67 #define M_ABORT 2 /* MUST abort immediately */
68 #define M_FATAL 3 /* Fatal error, stopping job */
69 #define M_ERROR 4 /* Error, but recoverable */
70 #define M_WARNING 5 /* Warning message */
71 #define M_INFO 6 /* Informational message */
72 #define M_SAVED 7 /* Info on saved file */
73 #define M_NOTSAVED 8 /* Info on notsaved file */
74 #define M_SKIPPED 9 /* File skipped by option setting */
75 #define M_MOUNT 10 /* Mount requests */
76 #define M_ERROR_TERM 11 /* Error termination request (no dump) */
77 #define M_TERM 12 /* Terminating daemon */
78 #define M_RESTORED 13 /* ls -l of restored files */
80 #define M_MAX M_RESTORED /* keep this updated ! */
82 /* Define message destination structure */
83 /* *** FIXME **** where should be extended to handle multiple values */
84 typedef struct s_dest {
86 int dest_code; /* destination (one of the MD_ codes) */
87 int max_len; /* max mail line length */
88 FILE *fd; /* file descriptor */
89 char msg_types[nbytes_for_bits(M_MAX+1)]; /* message type mask */
90 char *where; /* filename/program name */
91 char *mail_cmd; /* mail command */
92 POOLMEM *mail_filename; /* unique mail filename */
95 /* Message Destination values for dest field of DEST */
96 #define MD_SYSLOG 1 /* send msg to syslog */
97 #define MD_MAIL 2 /* email group of messages */
98 #define MD_FILE 3 /* write messages to a file */
99 #define MD_APPEND 4 /* append messages to a file */
100 #define MD_STDOUT 5 /* print messages */
101 #define MD_STDERR 6 /* print messages to stderr */
102 #define MD_DIRECTOR 7 /* send message to the Director */
103 #define MD_OPERATOR 8 /* email a single message to the operator */
104 #define MD_CONSOLE 9 /* send msg to UserAgent or console */
105 #define MD_MAIL_ON_ERROR 10 /* email messages if job errors */
108 void d_msg(char *file, int line, int level, char *fmt,...);
109 void e_msg(char *file, int line, int type, int level, char *fmt,...);
110 void Jmsg(JCR *jcr, int type, int level, char *fmt,...);
112 extern int debug_level;
114 extern char my_name[];
115 extern char *working_directory;
116 extern time_t daemon_start_time;
117 extern char catalog_db[];