Example #1
0
LogDriver *
afstomp_dd_new(GlobalConfig *cfg)
{
  STOMPDestDriver *self = g_new0(STOMPDestDriver, 1);

  log_threaded_dest_driver_init_instance(&self->super, cfg);
  self->super.super.super.super.init = afstomp_dd_init;
  self->super.super.super.super.free_fn = afstomp_dd_free;

  self->super.worker.thread_init = afstomp_worker_thread_init;
  self->super.worker.disconnect = afstomp_dd_disconnect;
  self->super.worker.insert = afstomp_worker_insert;

  self->super.format.stats_instance = afstomp_dd_format_stats_instance;
  self->super.format.persist_name = afstomp_dd_format_persist_name;
  self->super.stats_source = SCS_STOMP;

  afstomp_dd_set_host((LogDriver *) self, "127.0.0.1");
  afstomp_dd_set_port((LogDriver *) self, 61613);
  afstomp_dd_set_destination((LogDriver *) self, "/topic/syslog");
  afstomp_dd_set_persistent((LogDriver *) self, TRUE);
  afstomp_dd_set_ack((LogDriver *) self, FALSE);

  log_template_options_defaults(&self->template_options);
  afstomp_dd_set_value_pairs(&self->super.super.super, value_pairs_new_default(cfg));

  return (LogDriver *) self;
}
Example #2
0
LogDriver *
perl_dd_new(GlobalConfig *cfg)
{
  PerlDestDriver *self = g_new0(PerlDestDriver, 1);

  log_threaded_dest_driver_init_instance(&self->super);

  self->super.super.super.super.init = perl_worker_init;
  self->super.super.super.super.free_fn = perl_dd_free;

  self->super.worker.thread_init = _perl_thread_init;
  self->super.worker.thread_deinit = _perl_thread_deinit;
  self->super.worker.disconnect = NULL;
  self->super.worker.insert = perl_worker_eval;

  self->super.format.stats_instance = perl_dd_format_stats_instance;
  self->super.format.persist_name = perl_dd_format_persist_name;
  self->super.stats_source = SCS_PERL;

  init_sequence_number(&self->seq_num);

  log_template_options_defaults(&self->template_options);
  perl_dd_set_value_pairs(&self->super.super.super, value_pairs_new_default(cfg));

  return (LogDriver *)self;
}
Example #3
0
LogDriver *
redis_dd_new(GlobalConfig *cfg)
{
  RedisDriver *self = g_new0(RedisDriver, 1);

  log_threaded_dest_driver_init_instance(&self->super);
  self->super.super.super.super.init = redis_dd_init;
  self->super.super.super.super.free_fn = redis_dd_free;

  self->super.worker.thread_init = redis_worker_thread_init;
  self->super.worker.thread_deinit = redis_worker_thread_deinit;
  self->super.worker.disconnect = redis_dd_disconnect;
  self->super.worker.insert = redis_worker_insert;

  self->super.format.stats_instance = redis_dd_format_stats_instance;
  self->super.format.persist_name = redis_dd_format_persist_name;
  self->super.stats_source = SCS_REDIS;

  redis_dd_set_host((LogDriver *)self, "127.0.0.1");
  redis_dd_set_port((LogDriver *)self, 6379);

  self->command = g_string_sized_new(32);

  init_sequence_number(&self->seq_num);
  log_template_options_defaults(&self->template_options);

  return (LogDriver *)self;
}
Example #4
0
LogDriver *
afmongodb_dd_new(GlobalConfig *cfg)
{
  MongoDBDestDriver *self = g_new0(MongoDBDestDriver, 1);

  mongo_util_oid_init (0);

  log_threaded_dest_driver_init_instance(&self->super);

  self->super.super.super.super.init = afmongodb_dd_init;
  self->super.super.super.super.free_fn = afmongodb_dd_free;
  self->super.queue_method = afmongodb_dd_queue_method;

  self->super.worker.thread_init = afmongodb_worker_thread_init;
  self->super.worker.thread_deinit = afmongodb_worker_thread_deinit;
  self->super.worker.disconnect = afmongodb_dd_disconnect;
  self->super.worker.insert = afmongodb_worker_insert;
  self->super.format.stats_instance = afmongodb_dd_format_stats_instance;
  self->super.format.persist_name = afmongodb_dd_format_persist_name;
  self->super.stats_source = SCS_MONGODB;

  afmongodb_dd_set_database((LogDriver *)self, "syslog");
  afmongodb_dd_set_collection((LogDriver *)self, "messages");
  afmongodb_dd_set_safe_mode((LogDriver *)self, FALSE);

  init_sequence_number(&self->seq_num);

  log_template_options_defaults(&self->template_options);
  afmongodb_dd_set_value_pairs(&self->super.super.super, value_pairs_new_default(cfg));

  return (LogDriver *)self;
}
Example #5
0
LogDriver *
http_dd_new(GlobalConfig *cfg)
{
  HTTPDestinationDriver *self = g_new0(HTTPDestinationDriver, 1);

  log_threaded_dest_driver_init_instance(&self->super, cfg);

  self->super.super.super.super.init = http_dd_init;
  self->super.super.super.super.deinit = http_dd_deinit;
  self->super.worker.thread_init = _thread_init;
  self->super.worker.thread_deinit = _thread_deinit;
  self->super.worker.connect = _connect;
  self->super.worker.disconnect = _disconnect;
  self->super.worker.insert = _insert;
  self->super.super.super.super.generate_persist_name = _format_persist_name;
  self->super.format.stats_instance = _format_stats_instance;
  self->super.stats_source = SCS_HTTP;
  self->super.super.super.super.free_fn = http_dd_free;

  curl_global_init(CURL_GLOBAL_ALL);

  if (!(self->curl = curl_easy_init()))
    {
      msg_error("curl: cannot initialize libcurl", NULL);

      return NULL;
    }

  return &self->super.super.super;
}
Example #6
0
LogDriver *
http_dd_new(GlobalConfig *cfg)
{
  HTTPDestinationDriver *self = g_new0(HTTPDestinationDriver, 1);

  log_threaded_dest_driver_init_instance(&self->super, cfg);

  self->super.super.super.super.init = http_dd_init;
  self->super.super.super.super.deinit = http_dd_deinit;
  self->super.super.super.super.free_fn = http_dd_free;
  self->super.super.super.super.generate_persist_name = _format_persist_name;
  self->super.format_stats_instance = _format_stats_instance;
  self->super.stats_source = SCS_HTTP;
  self->super.worker.construct = http_dw_new;

  curl_global_init(CURL_GLOBAL_ALL);

  self->ssl_version = CURL_SSLVERSION_DEFAULT;
  self->peer_verify = TRUE;
  /* disable batching even if the global batch_lines is specified */
  self->super.batch_lines = 0;
  self->batch_bytes = 0;
  self->body_prefix = g_string_new("");
  self->body_suffix = g_string_new("");
  self->delimiter = g_string_new("\n");
  self->workers_lock = g_mutex_new();
  self->load_balancer = http_load_balancer_new();
  curl_version_info_data *curl_info = curl_version_info(CURLVERSION_NOW);
  if (!self->user_agent)
    self->user_agent = g_strdup_printf("syslog-ng %s/libcurl %s",
                                       SYSLOG_NG_VERSION, curl_info->version);

  return &self->super.super.super;
}
Example #7
0
static TestThreadedDestDriver *
test_threaded_dd_new(GlobalConfig *cfg)
{
  TestThreadedDestDriver *self = g_new0(TestThreadedDestDriver, 1);
  log_threaded_dest_driver_init_instance(&self->super, cfg);
  self->super.super.super.super.generate_persist_name = _generate_persist_name;
  self->super.format_stats_instance = _format_stats_instance;

  self->super.worker.connect = _connect_success;
  /* the insert function will be initialized explicitly in testcases */
  self->super.worker.insert = NULL;
  self->super.batch_timeout = 0;
  self->super.batch_lines = 0;
  return self;
}
Example #8
0
LogDriver *
afamqp_dd_new(GlobalConfig *cfg)
{
    AMQPDestDriver *self = g_new0(AMQPDestDriver, 1);

    log_threaded_dest_driver_init_instance(&self->super);

    self->super.super.super.super.init = afamqp_dd_init;
    self->super.super.super.super.free_fn = afamqp_dd_free;

    self->super.worker.thread_init = afamqp_worker_thread_init;
    self->super.worker.disconnect = afamqp_dd_disconnect;
    self->super.worker.insert = afamqp_worker_insert;

    self->super.format.stats_instance = afamqp_dd_format_stats_instance;
    self->super.format.persist_name = afamqp_dd_format_persist_name;
    self->super.stats_source = SCS_AMQP;

    self->routing_key_template = log_template_new(cfg, NULL);

    afamqp_dd_set_vhost((LogDriver *) self, "/");
    afamqp_dd_set_host((LogDriver *) self, "127.0.0.1");
    afamqp_dd_set_port((LogDriver *) self, 5672);
    afamqp_dd_set_exchange((LogDriver *) self, "syslog");
    afamqp_dd_set_exchange_type((LogDriver *) self, "fanout");
    afamqp_dd_set_routing_key((LogDriver *) self, "");
    afamqp_dd_set_persistent((LogDriver *) self, TRUE);
    afamqp_dd_set_exchange_declare((LogDriver *) self, FALSE);

    init_sequence_number(&self->seq_num);

    self->max_entries = 256;
    self->entries = g_new(amqp_table_entry_t, self->max_entries);

    log_template_options_defaults(&self->template_options);
    afamqp_dd_set_value_pairs(&self->super.super.super, value_pairs_new_default(cfg));

    return (LogDriver *) self;
}