~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/logging.cc

  • Committer: Brian Aker
  • Date: 2008-10-03 17:17:25 UTC
  • mfrom: (383.6.7 pluglog)
  • Revision ID: brian@tangent.org-20081003171725-ijf4hf0zm87kaszw
Merging Mark's logging work.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <drizzled/server_includes.h>
 
2
#include <drizzled/logging.h>
 
3
 
 
4
int logging_initializer(st_plugin_int *plugin)
 
5
{
 
6
  logging_t *p;
 
7
 
 
8
  fprintf(stderr, "MRA %s plugin:%s dl:%s\n",
 
9
          __func__, plugin->name.str, plugin->plugin_dl->dl.str);
 
10
 
 
11
  p= (logging_t *) malloc(sizeof(logging_t));
 
12
  if (p == NULL) return 1;
 
13
  memset(p, 0, sizeof(logging_t));
 
14
 
 
15
  plugin->data= (void *)p;
 
16
 
 
17
  if (plugin->plugin->init)
 
18
  {
 
19
    if (plugin->plugin->init((void *)p))
 
20
    {
 
21
      sql_print_error("Logging plugin '%s' init function returned error.",
 
22
                      plugin->name.str);
 
23
      goto err;
 
24
    }
 
25
  }
 
26
  return 0;
 
27
 
 
28
err:
 
29
  free(p);
 
30
  return 1;
 
31
}
 
32
 
 
33
int logging_finalizer(st_plugin_int *plugin)
 
34
 
35
  logging_t *p = (logging_t *) plugin->data;
 
36
 
 
37
  fprintf(stderr, "MRA %s plugin:%s dl:%s\n",
 
38
          __func__, plugin->name.str, plugin->plugin_dl->dl.str);
 
39
 
 
40
  if (plugin->plugin->deinit)
 
41
  {
 
42
    if (plugin->plugin->deinit((void *)p))
 
43
    {
 
44
      sql_print_error("Logging plugin '%s' deinit function returned error.",
 
45
                      plugin->name.str);
 
46
    }
 
47
  }
 
48
 
 
49
  if (p) free(p);
 
50
 
 
51
  return 0;
 
52
}
 
53
 
 
54
static bool logging_pre_iterate (THD *thd, plugin_ref plugin,
 
55
                                 void *stuff __attribute__ ((__unused__)))
 
56
{
 
57
  logging_t *l= plugin_data(plugin, logging_t *);
 
58
 
 
59
  if (l && l->logging_pre)
 
60
  {
 
61
    if (l->logging_pre(thd))
 
62
      return true;
 
63
  }
 
64
  return false;
 
65
}
 
66
 
 
67
void logging_pre_do (THD *thd)
 
68
{
 
69
  if (plugin_foreach(thd, logging_pre_iterate, DRIZZLE_LOGGER_PLUGIN, NULL))
 
70
  {
 
71
    sql_print_error("Logging plugin pre had an error.");
 
72
  }
 
73
  return;
 
74
}
 
75
 
 
76
static bool logging_post_iterate (THD *thd, plugin_ref plugin, 
 
77
                                  void *stuff __attribute__ ((__unused__)))
 
78
{
 
79
  logging_t *l= plugin_data(plugin, logging_t *);
 
80
 
 
81
  if (l && l->logging_post)
 
82
  {
 
83
    if (l->logging_post(thd))
 
84
      return true;
 
85
  }
 
86
  return false;
 
87
}
 
88
 
 
89
void logging_post_do (THD *thd)
 
90
{
 
91
  if (plugin_foreach(thd, logging_post_iterate, DRIZZLE_LOGGER_PLUGIN, NULL))
 
92
  {
 
93
    sql_print_error("Logging plugin post had an error.");
 
94
  }
 
95
  return;
 
96
}