~drizzle-trunk/drizzle/development

1637.3.1 by Mark Atwood
new syslog module, with plugins for query log, error message, and SYSLOG() function
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2010 Mark Atwood
5
 *
6
 *  This program is free software; you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation; version 2 of the License.
9
 *
10
 *  This program is distributed in the hope that it will be useful,
11
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 *  GNU General Public License for more details.
14
 *
15
 *  You should have received a copy of the GNU General Public License
16
 *  along with this program; if not, write to the Free Software
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
 */
19
20
#include "config.h"
21
22
#include <drizzled/gettext.h>
23
#include <drizzled/session.h>
24
25
#include <stdarg.h>
26
27
#include "errmsg.h"
28
#include "wrap.h"
29
1964.2.7 by Monty Taylor
Refactored syslog module and changed it to use sys_var directly.
30
namespace drizzle_plugin
31
{
32
33
error_message::Syslog::Syslog(const std::string& facility,
34
                              const std::string& priority) :
35
  drizzled::plugin::ErrorMessage("Syslog"),
36
  _facility(WrapSyslog::getFacilityByName(facility.c_str())),
37
  _priority(WrapSyslog::getPriorityByName(priority.c_str()))
38
{
39
  if (_facility == -1)
40
  {
41
    drizzled::errmsg_printf(ERRMSG_LVL_WARN,
42
                            _("syslog facility \"%s\" not known, using \"local0\""),
43
                            facility.c_str());
44
    _facility= WrapSyslog::getFacilityByName("local0");
45
  }
46
47
  if (_priority == -1)
48
  {
49
    drizzled::errmsg_printf(ERRMSG_LVL_WARN,
50
                            _("syslog priority \"%s\" not known, using \"warn\""),
51
                            priority.c_str());
52
    _priority= WrapSyslog::getPriorityByName("warn");
53
  }
1637.3.1 by Mark Atwood
new syslog module, with plugins for query log, error message, and SYSLOG() function
54
}
55
1964.2.7 by Monty Taylor
Refactored syslog module and changed it to use sys_var directly.
56
bool error_message::Syslog::errmsg(drizzled::Session *,
57
                                  int, const char *format, va_list ap)
1637.3.1 by Mark Atwood
new syslog module, with plugins for query log, error message, and SYSLOG() function
58
{
1964.2.7 by Monty Taylor
Refactored syslog module and changed it to use sys_var directly.
59
  WrapSyslog::singleton().vlog(_facility, _priority, format, ap);
1637.3.1 by Mark Atwood
new syslog module, with plugins for query log, error message, and SYSLOG() function
60
  return false;
61
}
1964.2.7 by Monty Taylor
Refactored syslog module and changed it to use sys_var directly.
62
63
} /* namespace drizzle_plugin */