123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698 |
- Index: nginx-1.4.7/src/core/ngx_cycle.c
- ===================================================================
- --- nginx-1.4.7.orig/src/core/ngx_cycle.c
- +++ nginx-1.4.7/src/core/ngx_cycle.c
- @@ -85,6 +85,12 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
- cycle->pool = pool;
- cycle->log = log;
- cycle->new_log.log_level = NGX_LOG_ERR;
- +#if (NGX_ENABLE_SYSLOG)
- + cycle->new_log.facility = SYSLOG_FACILITY;
- + cycle->new_log.facility = ERR_SYSLOG_PRIORITY;
- + cycle->new_log.syslog_on = 0;
- + cycle->new_log.syslog_set = 0;
- +#endif
- cycle->old_cycle = old_cycle;
-
- cycle->conf_prefix.len = old_cycle->conf_prefix.len;
- Index: nginx-1.4.7/src/core/ngx_log.c
- ===================================================================
- --- nginx-1.4.7.orig/src/core/ngx_log.c
- +++ nginx-1.4.7/src/core/ngx_log.c
- @@ -10,6 +10,15 @@
-
-
- static char *ngx_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
- +#if (NGX_ENABLE_SYSLOG)
- +static char *ngx_set_syslog(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
- +void log_exit(ngx_cycle_t *cycle);
- +
- +typedef struct{
- + ngx_str_t name;
- + ngx_int_t macro;
- +} ngx_string_to_macro_t;
- +#endif
-
-
- static ngx_command_t ngx_errlog_commands[] = {
- @@ -21,6 +30,15 @@ static ngx_command_t ngx_errlog_command
- 0,
- NULL},
-
- +#if (NGX_ENABLE_SYSLOG)
- + {ngx_string("syslog"),
- + NGX_MAIN_CONF|NGX_CONF_TAKE12,
- + ngx_set_syslog,
- + 0,
- + 0,
- + NULL},
- +#endif
- +
- ngx_null_command
- };
-
- @@ -43,7 +61,11 @@ ngx_module_t ngx_errlog_module = {
- NULL, /* init thread */
- NULL, /* exit thread */
- NULL, /* exit process */
- - NULL, /* exit master */
- +#if (NGX_ENABLE_SYSLOG)
- + log_exit, /* exit master */
- +#else
- + NULL,
- +#endif
- NGX_MODULE_V1_PADDING
- };
-
- @@ -52,6 +74,48 @@ static ngx_log_t ngx_log;
- static ngx_open_file_t ngx_log_file;
- ngx_uint_t ngx_use_stderr = 1;
-
- +#if (NGX_ENABLE_SYSLOG)
- +static ngx_string_to_macro_t ngx_syslog_facilities[] = {
- + {ngx_string("auth"), LOG_AUTH},
- +#if !(NGX_SOLARIS)
- + {ngx_string("authpriv"), LOG_AUTHPRIV},
- +#endif
- + {ngx_string("cron"), LOG_CRON},
- + {ngx_string("daemon"), LOG_DAEMON},
- +#if !(NGX_SOLARIS)
- + {ngx_string("ftp"), LOG_FTP},
- +#endif
- + {ngx_string("kern"), LOG_KERN},
- + {ngx_string("local0"), LOG_LOCAL0},
- + {ngx_string("local1"), LOG_LOCAL1},
- + {ngx_string("local2"), LOG_LOCAL2},
- + {ngx_string("local3"), LOG_LOCAL3},
- + {ngx_string("local4"), LOG_LOCAL4},
- + {ngx_string("local5"), LOG_LOCAL5},
- + {ngx_string("local6"), LOG_LOCAL6},
- + {ngx_string("local7"), LOG_LOCAL7},
- + {ngx_string("lpr"), LOG_LPR},
- + {ngx_string("mail"), LOG_MAIL},
- + {ngx_string("news"), LOG_NEWS},
- + {ngx_string("syslog"), LOG_SYSLOG},
- + {ngx_string("user"), LOG_USER},
- + {ngx_string("uucp"), LOG_UUCP},
- + { ngx_null_string, 0}
- +};
- +
- +static ngx_string_to_macro_t ngx_syslog_priorities[] = {
- + {ngx_string("emerg"), LOG_EMERG},
- + {ngx_string("alert"), LOG_ALERT},
- + {ngx_string("crit"), LOG_CRIT},
- + {ngx_string("error"), LOG_ERR},
- + {ngx_string("err"), LOG_ERR},
- + {ngx_string("warn"), LOG_WARNING},
- + {ngx_string("notice"),LOG_NOTICE},
- + {ngx_string("info"), LOG_INFO},
- + {ngx_string("debug"), LOG_DEBUG},
- + { ngx_null_string, 0}
- +};
- +#endif
-
- static ngx_str_t err_levels[] = {
- ngx_null_string,
- @@ -89,11 +153,16 @@ ngx_log_error_core(ngx_uint_t level, ngx
- va_list args;
- #endif
- u_char *p, *last, *msg;
- +#if (NGX_ENABLE_SYSLOG)
- + u_char *errstr_syslog;
- +#endif
- u_char errstr[NGX_MAX_ERROR_STR];
-
- +#if !(NGX_ENABLE_SYSLOG)
- if (log->file->fd == NGX_INVALID_FILE) {
- return;
- }
- +#endif
-
- last = errstr + NGX_MAX_ERROR_STR;
-
- @@ -102,6 +171,10 @@ ngx_log_error_core(ngx_uint_t level, ngx
-
- p = errstr + ngx_cached_err_log_time.len;
-
- +#if (NGX_ENABLE_SYSLOG)
- + errstr_syslog = p;
- +#endif
- +
- p = ngx_slprintf(p, last, " [%V] ", &err_levels[level]);
-
- /* pid#tid */
- @@ -140,11 +213,27 @@ ngx_log_error_core(ngx_uint_t level, ngx
-
- ngx_linefeed(p);
-
- +#if (NGX_ENABLE_SYSLOG)
- + if (log->file != NULL && log->file->name.len != 0) {
- (void) ngx_write_fd(log->file->fd, errstr, p - errstr);
- + }
- +
- + /* Don't send the debug level info to syslog */
- + if (log->syslog_on && level < NGX_LOG_DEBUG) {
- + /* write to syslog */
- + syslog(log->priority, "%.*s", (int)(p - errstr_syslog), errstr_syslog);
- + }
- +#else
- + (void) ngx_write_fd(log->file->fd, errstr, p - errstr);
- +#endif
-
- if (!ngx_use_stderr
- || level > NGX_LOG_WARN
- +#if (NGX_ENABLE_SYSLOG)
- + || (log->file != NULL && log->file->fd == ngx_stderr))
- +#else
- || log->file->fd == ngx_stderr)
- +#endif
- {
- return;
- }
- @@ -367,6 +456,50 @@ ngx_log_create(ngx_cycle_t *cycle, ngx_s
- }
-
-
- +#if (NGX_ENABLE_SYSLOG)
- +ngx_int_t
- +ngx_log_get_priority(ngx_conf_t *cf, ngx_str_t *priority)
- +{
- + ngx_int_t p = 0;
- + ngx_uint_t n, match = 0;
- +
- + for (n = 0; ngx_syslog_priorities[n].name.len != 0; n++) {
- + if (ngx_strncmp(priority->data, ngx_syslog_priorities[n].name.data,
- + ngx_syslog_priorities[n].name.len) == 0) {
- + p = ngx_syslog_priorities[n].macro;
- + match = 1;
- + }
- + }
- +
- + if (!match) {
- + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
- + "invalid syslog priority \"%V\"", priority);
- + return -1;
- + }
- +
- + return p;
- +}
- +
- +
- +char *
- +ngx_log_set_priority(ngx_conf_t *cf, ngx_str_t *priority, ngx_log_t *log)
- +{
- + log->priority = ERR_SYSLOG_PRIORITY;
- +
- + if (priority->len == 0) {
- + return NGX_CONF_OK;
- + }
- +
- + log->priority = ngx_log_get_priority(cf, priority);
- + if (log->priority == (-1)) {
- + return NGX_CONF_ERROR;
- + }
- +
- + return NGX_CONF_OK;
- +}
- +#endif
- +
- +
- char *
- ngx_log_set_levels(ngx_conf_t *cf, ngx_log_t *log)
- {
- @@ -429,6 +562,13 @@ static char *
- ngx_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
- {
- ngx_str_t *value, name;
- +#if (NGX_ENABLE_SYSLOG)
- + u_char *off = NULL;
- + ngx_str_t priority;
- +
- + ngx_str_null(&name);
- + ngx_str_null(&priority);
- +#endif
-
- if (cf->cycle->new_log.file) {
- return "is duplicate";
- @@ -436,7 +576,44 @@ ngx_error_log(ngx_conf_t *cf, ngx_comman
-
- value = cf->args->elts;
-
- +#if (NGX_ENABLE_SYSLOG)
- + if (ngx_strncmp(value[1].data, "syslog", sizeof("syslog") - 1) == 0) {
- + if (!cf->cycle->new_log.syslog_set) {
- + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
- + "You must set the syslog directive and enable it first.");
- + return NGX_CONF_ERROR;
- + }
- +
- + cf->cycle->new_log.syslog_on = 1;
- +
- + if (value[1].data[sizeof("syslog") - 1] == ':') {
- + priority.len = value[1].len - sizeof("syslog");
- + priority.data = value[1].data + sizeof("syslog");
- +
- + off = (u_char *)ngx_strchr(priority.data, (int) '|');
- + if (off != NULL) {
- + priority.len = off - priority.data;
- +
- + off++;
- + name.len = value[1].data + value[1].len - off;
- + name.data = off;
- + }
- + }
- + else {
- + if (value[1].len > sizeof("syslog")) {
- + name.len = value[1].len - sizeof("syslog");
- + name.data = value[1].data + sizeof("syslog");
- + }
- + }
- +
- + if (ngx_log_set_priority(cf, &priority, &cf->cycle->new_log) == NGX_CONF_ERROR) {
- + return NGX_CONF_ERROR;
- + }
- + }
- + else if (ngx_strcmp(value[1].data, "stderr") == 0) {
- +#else
- if (ngx_strcmp(value[1].data, "stderr") == 0) {
- +#endif
- ngx_str_null(&name);
-
- } else {
- @@ -457,3 +634,63 @@ ngx_error_log(ngx_conf_t *cf, ngx_comman
-
- return ngx_log_set_levels(cf, &cf->cycle->new_log);
- }
- +
- +
- +#if (NGX_ENABLE_SYSLOG)
- +
- +#define SYSLOG_IDENT_NAME "nginx"
- +
- +static char *
- +ngx_set_syslog(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
- +{
- + char *program;
- + ngx_str_t *value;
- + ngx_int_t facility, match = 0;
- + ngx_uint_t n;
- +
- + value = cf->args->elts;
- +
- + if (cf->cycle->new_log.syslog_set) {
- + return "is duplicate";
- + }
- +
- + cf->cycle->new_log.syslog_set = 1;
- +
- + for (n = 0; ngx_syslog_facilities[n].name.len != 0; n++) {
- + if (ngx_strncmp(value[1].data, ngx_syslog_facilities[n].name.data,
- + ngx_syslog_facilities[n].name.len) == 0) {
- + facility = ngx_syslog_facilities[n].macro;
- + match = 1;
- + break;
- + }
- + }
- +
- + if (match) {
- + cf->cycle->new_log.facility = facility;
- + cf->cycle->new_log.priority = ERR_SYSLOG_PRIORITY;
- + }
- + else {
- + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
- + "invalid syslog facility \"%V\"", &value[1]);
- + return NGX_CONF_ERROR;
- + }
- +
- + program = SYSLOG_IDENT_NAME;
- + if (cf->args->nelts > 2) {
- + program = (char *) value[2].data;
- + }
- +
- + openlog(program, LOG_ODELAY, facility);
- +
- + return NGX_CONF_OK;
- +}
- +
- +
- +void log_exit(ngx_cycle_t *cycle)
- +{
- + if (cycle->new_log.syslog_set) {
- + closelog();
- + }
- +}
- +#endif
- +
- Index: nginx-1.4.7/src/core/ngx_log.h
- ===================================================================
- --- nginx-1.4.7.orig/src/core/ngx_log.h
- +++ nginx-1.4.7/src/core/ngx_log.h
- @@ -12,6 +12,13 @@
- #include <ngx_config.h>
- #include <ngx_core.h>
-
- +#if (NGX_ENABLE_SYSLOG)
- +#include <syslog.h>
- +
- +#define SYSLOG_FACILITY LOG_LOCAL5
- +#define ERR_SYSLOG_PRIORITY LOG_ERR
- +#endif
- +
-
- #define NGX_LOG_STDERR 0
- #define NGX_LOG_EMERG 1
- @@ -61,6 +68,13 @@ struct ngx_log_s {
- */
-
- char *action;
- +
- +#if (NGX_ENABLE_SYSLOG)
- + ngx_int_t priority;
- + ngx_int_t facility;
- + unsigned syslog_on:1; /* unsigned :1 syslog_on */
- + unsigned syslog_set:1; /*unsigned :1 syslog_set */
- +#endif
- };
-
-
- @@ -221,6 +235,10 @@ void ngx_cdecl ngx_log_debug_core(ngx_lo
-
- ngx_log_t *ngx_log_init(u_char *prefix);
- ngx_log_t *ngx_log_create(ngx_cycle_t *cycle, ngx_str_t *name);
- +#if (NGX_ENABLE_SYSLOG)
- +ngx_int_t ngx_log_get_priority(ngx_conf_t *cf, ngx_str_t *priority);
- +char * ngx_log_set_priority(ngx_conf_t *cf, ngx_str_t *priority, ngx_log_t *log);
- +#endif
- char *ngx_log_set_levels(ngx_conf_t *cf, ngx_log_t *log);
- void ngx_cdecl ngx_log_abort(ngx_err_t err, const char *fmt, ...);
- void ngx_cdecl ngx_log_stderr(ngx_err_t err, const char *fmt, ...);
- Index: nginx-1.4.7/src/http/modules/ngx_http_log_module.c
- ===================================================================
- --- nginx-1.4.7.orig/src/http/modules/ngx_http_log_module.c
- +++ nginx-1.4.7/src/http/modules/ngx_http_log_module.c
- @@ -13,6 +13,11 @@
- #include <zlib.h>
- #endif
-
- +#if (NGX_ENABLE_SYSLOG)
- +#include <syslog.h>
- +
- +#define HTTP_SYSLOG_PRIORITY LOG_NOTICE
- +#endif
-
- typedef struct ngx_http_log_op_s ngx_http_log_op_t;
-
- @@ -67,6 +72,11 @@ typedef struct {
- time_t disk_full_time;
- time_t error_log_time;
- ngx_http_log_fmt_t *format;
- +
- +#if (NGX_ENABLE_SYSLOG)
- + ngx_int_t priority;
- + unsigned syslog_on:1; /* unsigned :1 syslog_on */
- +#endif
- } ngx_http_log_t;
-
-
- @@ -348,6 +358,14 @@ ngx_http_log_write(ngx_http_request_t *r
- time_t now;
- ssize_t n;
- ngx_err_t err;
- +
- +#if (NGX_ENABLE_SYSLOG)
- + n = 0;
- + if (log->syslog_on) {
- + syslog(log->priority, "%.*s", (int)len, buf);
- + }
- +#endif
- +
- #if (NGX_ZLIB)
- ngx_http_log_buf_t *buffer;
- #endif
- @@ -355,6 +373,9 @@ ngx_http_log_write(ngx_http_request_t *r
- if (log->script == NULL) {
- name = log->file->name.data;
-
- +#if (NGX_ENABLE_SYSLOG)
- + if (name != NULL) {
- +#endif
- #if (NGX_ZLIB)
- buffer = log->file->data;
-
- @@ -367,7 +388,11 @@ ngx_http_log_write(ngx_http_request_t *r
- #else
- n = ngx_write_fd(log->file->fd, buf, len);
- #endif
- -
- +#if (NGX_ENABLE_SYSLOG)
- + } else {
- + n = len;
- + }
- +#endif
- } else {
- name = NULL;
- n = ngx_http_log_script_write(r, log->script, &name, buf, len);
- @@ -1068,6 +1093,10 @@ ngx_http_log_merge_loc_conf(ngx_conf_t *
- log->script = NULL;
- log->disk_full_time = 0;
- log->error_log_time = 0;
- +#if (NGX_ENABLE_SYSLOG)
- + log->priority = HTTP_SYSLOG_PRIORITY;
- + log->syslog_on = 0;
- +#endif
-
- lmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_log_module);
- fmt = lmcf->formats.elts;
- @@ -1096,6 +1125,13 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
- ngx_http_log_main_conf_t *lmcf;
- ngx_http_script_compile_t sc;
-
- +#if (NGX_ENABLE_SYSLOG)
- + u_char *off;
- + ngx_str_t priority;
- + ngx_uint_t syslog_on = 0;
- + name = priority = (ngx_str_t)ngx_null_string;
- +#endif
- +
- value = cf->args->elts;
-
- if (ngx_strcmp(value[1].data, "off") == 0) {
- @@ -1108,6 +1144,38 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
- "invalid parameter \"%V\"", &value[2]);
- return NGX_CONF_ERROR;
- }
- +#if (NGX_ENABLE_SYSLOG)
- + else if (ngx_strncmp(value[1].data, "syslog", sizeof("syslog") - 1) == 0) {
- + if (!cf->cycle->new_log.syslog_set) {
- + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
- + "You must set the syslog directive and enable it first.");
- + return NGX_CONF_ERROR;
- + }
- +
- + syslog_on = 1;
- + if (value[1].data[sizeof("syslog") - 1] == ':') {
- + priority.len = value[1].len - sizeof("syslog");
- + priority.data = value[1].data + sizeof("syslog");
- +
- + off = (u_char*) ngx_strchr(priority.data, '|');
- + if (off != NULL) {
- + priority.len = off - priority.data;
- +
- + off++;
- + name.len = value[1].data + value[1].len - off;
- + name.data = off;
- + }
- + }
- + else {
- + if (value[1].len > sizeof("syslog")) {
- + name.len = value[1].len - sizeof("syslog");
- + name.data = value[1].data + sizeof("syslog");
- + }
- + }
- + } else {
- + name = value[1];
- + }
- +#endif
-
- if (llcf->logs == NULL) {
- llcf->logs = ngx_array_create(cf->pool, 2, sizeof(ngx_http_log_t));
- @@ -1125,6 +1193,52 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
-
- ngx_memzero(log, sizeof(ngx_http_log_t));
-
- +#if (NGX_ENABLE_SYSLOG)
- + log->syslog_on = syslog_on;
- +
- + if (priority.len == 0) {
- + log->priority = HTTP_SYSLOG_PRIORITY;
- + }
- + else {
- + log->priority = ngx_log_get_priority(cf, &priority);
- + }
- +
- + if (name.len != 0) {
- + n = ngx_http_script_variables_count(&name);
- +
- + if (n == 0) {
- + log->file = ngx_conf_open_file(cf->cycle, &name);
- + if (log->file == NULL) {
- + return NGX_CONF_ERROR;
- + }
- + } else {
- + if (ngx_conf_full_name(cf->cycle, &name, 0) != NGX_OK) {
- + return NGX_CONF_ERROR;
- + }
- + log->script = ngx_pcalloc(cf->pool, sizeof(ngx_http_log_script_t));
- + if (log->script == NULL) {
- + return NGX_CONF_ERROR;
- + }
- + ngx_memzero(&sc, sizeof(ngx_http_script_compile_t));
- + sc.cf = cf;
- + sc.source = &name;
- + sc.lengths = &log->script->lengths;
- + sc.values = &log->script->values;
- + sc.variables = n;
- + sc.complete_lengths = 1;
- + sc.complete_values = 1;
- + if (ngx_http_script_compile(&sc) != NGX_OK) {
- + return NGX_CONF_ERROR;
- + }
- + }
- + }
- + else {
- + log->file = ngx_conf_open_file(cf->cycle, &name);
- + if (log->file == NULL) {
- + return NGX_CONF_ERROR;
- + }
- + }
- +#else
- n = ngx_http_script_variables_count(&value[1]);
-
- if (n == 0) {
- @@ -1157,6 +1271,7 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
- return NGX_CONF_ERROR;
- }
- }
- +#endif
-
- if (cf->args->nelts >= 3) {
- name = value[2];
- Index: nginx-1.4.7/src/http/ngx_http_core_module.c
- ===================================================================
- --- nginx-1.4.7.orig/src/http/ngx_http_core_module.c
- +++ nginx-1.4.7/src/http/ngx_http_core_module.c
- @@ -1462,6 +1462,9 @@ ngx_http_update_location_config(ngx_http
-
- if (r == r->main) {
- ngx_http_set_connection_log(r->connection, clcf->error_log);
- +#if (NGX_ENABLE_SYSLOG)
- + r->connection->log->priority = clcf->error_log->priority;
- +#endif
- }
-
- if ((ngx_io.flags & NGX_IO_SENDFILE) && clcf->sendfile) {
- @@ -4901,6 +4904,15 @@ ngx_http_core_error_log(ngx_conf_t *cf,
-
- ngx_str_t *value, name;
-
- +#if (NGX_ENABLE_SYSLOG)
- + u_char *off = NULL;
- + ngx_int_t syslog_on = 0;
- + ngx_str_t priority;
- +
- + name = priority = (ngx_str_t) ngx_null_string;
- +#endif
- +
- +
- if (clcf->error_log) {
- return "is duplicate";
- }
- @@ -4910,6 +4922,36 @@ ngx_http_core_error_log(ngx_conf_t *cf,
- if (ngx_strcmp(value[1].data, "stderr") == 0) {
- ngx_str_null(&name);
-
- +#if (NGX_ENABLE_SYSLOG)
- + } else if (ngx_strncmp(value[1].data, "syslog", sizeof("syslog") - 1) == 0) {
- + if (!cf->cycle->new_log.syslog_set) {
- + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
- + "You must set the syslog directive and enable it first.");
- + return NGX_CONF_ERROR;
- + }
- +
- + syslog_on = 1;
- +
- + if (value[1].data[sizeof("syslog") - 1] == ':') {
- + priority.len = value[1].len - sizeof("syslog");
- + priority.data = value[1].data + sizeof("syslog");
- +
- + off = (u_char*) ngx_strchr(priority.data, '|');
- + if (off != NULL) {
- + priority.len = off - priority.data;
- +
- + off++;
- + name.len = value[1].data + value[1].len - off;
- + name.data = off;
- + }
- + }
- + else {
- + if (value[1].len > sizeof("syslog")) {
- + name.len = value[1].len - sizeof("syslog");
- + name.data = value[1].data + sizeof("syslog");
- + }
- + }
- +#endif
- } else {
- name = value[1];
- }
- @@ -4919,6 +4961,17 @@ ngx_http_core_error_log(ngx_conf_t *cf,
- return NGX_CONF_ERROR;
- }
-
- +#if (NGX_ENABLE_SYSLOG)
- + if (syslog_on) {
- + clcf->error_log->syslog_on = 1;
- + if (ngx_log_set_priority(cf, &priority, clcf->error_log) == NGX_CONF_ERROR) {
- + return NGX_CONF_ERROR;
- + }
- + }
- +
- + clcf->error_log->log_level = 0;
- +#endif
- +
- if (cf->args->nelts == 2) {
- clcf->error_log->log_level = NGX_LOG_ERR;
- return NGX_CONF_OK;
- Index: nginx-1.4.7/src/http/ngx_http_request.c
- ===================================================================
- --- nginx-1.4.7.orig/src/http/ngx_http_request.c
- +++ nginx-1.4.7/src/http/ngx_http_request.c
- @@ -533,6 +533,9 @@ ngx_http_create_request(ngx_connection_t
- clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
-
- ngx_http_set_connection_log(r->connection, clcf->error_log);
- +#if (NGX_ENABLE_SYSLOG)
- + c->log->priority = clcf->error_log->priority;
- +#endif
-
- r->header_in = hc->nbusy ? hc->busy[0] : c->buffer;
-
- @@ -872,6 +875,9 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *
- clcf = ngx_http_get_module_loc_conf(hc->conf_ctx, ngx_http_core_module);
-
- ngx_http_set_connection_log(c, clcf->error_log);
- +#if (NGX_ENABLE_SYSLOG)
- + c->log->priority = clcf->error_log->priority;
- +#endif
-
- sscf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_ssl_module);
-
- @@ -2077,6 +2083,9 @@ ngx_http_set_virtual_server(ngx_http_req
- clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
-
- ngx_http_set_connection_log(r->connection, clcf->error_log);
- +#if (NGX_ENABLE_SYSLOG)
- + r->connection->log->priority = clcf->error_log->priority;
- +#endif
-
- return NGX_OK;
- }
|