You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2007/11/01 01:06:33 UTC
svn commit: r590865 - in /webservices/axis2/trunk/c:
src/core/transport/http/server/simple_axis2_server/http_server_main.c
util/include/axutil_file_handler.h util/include/axutil_log.h
util/src/file_handler.c util/src/log.c
Author: damitha
Date: Wed Oct 31 17:06:33 2007
New Revision: 590865
URL: http://svn.apache.org/viewvc?rev=590865&view=rev
Log:
Fixing AXIS2C-732 and AXIS2C-734
Modified:
webservices/axis2/trunk/c/src/core/transport/http/server/simple_axis2_server/http_server_main.c
webservices/axis2/trunk/c/util/include/axutil_file_handler.h
webservices/axis2/trunk/c/util/include/axutil_log.h
webservices/axis2/trunk/c/util/src/file_handler.c
webservices/axis2/trunk/c/util/src/log.c
Modified: webservices/axis2/trunk/c/src/core/transport/http/server/simple_axis2_server/http_server_main.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/server/simple_axis2_server/http_server_main.c?rev=590865&r1=590864&r2=590865&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/server/simple_axis2_server/http_server_main.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/server/simple_axis2_server/http_server_main.c Wed Oct 31 17:06:33 2007
@@ -30,18 +30,6 @@
#include <axiom_xml_reader.h>
#include <axutil_version.h>
-#ifndef AXIS2_HTTP_SERVER_LOG_FILE_NAME
-#define AXIS2_HTTP_SERVER_LOG_FILE_NAME "axis2_http_server.log"
-#endif
-
-#ifndef AXIS2_HTTP_SERVER_PORT
-#define AXIS2_HTTP_SERVER_PORT 9090
-#endif
-
-#ifndef AXIS2_HTTP_SERVER_REPO_PATH
-#define AXIS2_HTTP_SERVER_REPO_PATH "../"
-#endif
-
axutil_env_t *system_env = NULL;
axis2_transport_receiver_t *server = NULL;
AXIS2_IMPORT extern int axis2_http_socket_read_timeout;
@@ -112,16 +100,17 @@
extern char *optarg;
extern int optopt;
int c;
+ int log_file_size = AXUTIL_LOG_FILE_SIZE;
axutil_log_levels_t log_level = AXIS2_LOG_LEVEL_DEBUG;
- const axis2_char_t *log_file = AXIS2_HTTP_SERVER_LOG_FILE_NAME;
- int port = AXIS2_HTTP_SERVER_PORT;
- const axis2_char_t *repo_path = AXIS2_HTTP_SERVER_REPO_PATH;
+ const axis2_char_t *log_file = "axis2.log";
+ int port = 9090;
+ const axis2_char_t *repo_path = "../";
/* Set the service URL prefix to be used. This could default to services if not
set with AXIS2_REQUEST_URL_PREFIX macro at compile time */
axis2_request_url_prefix = AXIS2_REQUEST_URL_PREFIX;
- while ((c = AXIS2_GETOPT(argc, argv, ":p:r:ht:l:f:")) != -1)
+ while ((c = AXIS2_GETOPT(argc, argv, ":p:r:ht:l:s:f:")) != -1)
{
switch (c)
@@ -139,9 +128,12 @@
log_level = AXIS2_ATOI(optarg);
if (log_level < AXIS2_LOG_LEVEL_CRITICAL)
log_level = AXIS2_LOG_LEVEL_CRITICAL;
- if (log_level > AXIS2_LOG_LEVEL_TRACE)
+ if (log_level > AXIS2_LOG_LEVEL_SERVICE)
log_level = AXIS2_LOG_LEVEL_TRACE;
break;
+ case 's':
+ log_file_size = 1024 * 1024 * AXIS2_ATOI(optarg);
+ break;
case 'f':
log_file = optarg;
break;
@@ -169,6 +161,7 @@
env = init_syetem_env(allocator, log_file);
env->log->level = log_level;
+ env->log->size = log_file_size;
axutil_error_init();
system_env = env;
@@ -218,19 +211,22 @@
fprintf(stdout, " [-r REPO_PATH]");
fprintf(stdout, " [-l LOG_LEVEL]");
fprintf(stdout, " [-f LOG_FILE]\n");
+ fprintf(stdout, " [-s LOG_FILE_SIZE]\n");
fprintf(stdout, " Options :\n");
- fprintf(stdout, "\t-p PORT \t port number to use, default port is %d\n", AXIS2_HTTP_SERVER_PORT);
+ fprintf(stdout, "\t-p PORT \t port number to use, default port is 9090\n");
fprintf(stdout, "\t-r REPO_PATH \t repository path, default is ../\n");
fprintf(stdout,
"\t-t TIMEOUT\t socket read timeout, default is 30 seconds\n");
fprintf(stdout,
"\t-l LOG_LEVEL\t log level, available log levels:"
"\n\t\t\t 0 - critical 1 - errors 2 - warnings"
- "\n\t\t\t 3 - information 4 - debug 5- trace"
+ "\n\t\t\t 3 - information 4 - debug 5- trace 6- service"
"\n\t\t\t Default log level is 4(debug).\n");
fprintf(stdout,
"\t-f LOG_FILE\t log file, default is $AXIS2C_HOME/logs/axis2.log"
"\n\t\t\t or axis2.log in current folder if AXIS2C_HOME not set\n");
+ fprintf(stdout,
+ "\t-s LOG_FILE_SIZE\t Maximum log file size in mega bytes, default maximum size is 8MB.\n");
fprintf(stdout, " Help :\n\t-h \t display this help screen.\n\n");
}
@@ -243,13 +239,26 @@
sig_handler(
int signal)
{
+
+ if (!system_env)
+ {
+ AXIS2_LOG_ERROR(system_env->log, AXIS2_LOG_SI,
+ "Received signal %d, unable to proceed system_env is NULL ,\
+ system exit with -1", signal);
+ _exit (-1);
+ }
+
switch (signal)
{
case SIGINT:
{
AXIS2_LOG_INFO(system_env->log, "Received signal SIGINT. Server "
"shutting down");
- axis2_http_server_stop(server, system_env);
+ if (server)
+ {
+ axis2_http_server_stop(server, system_env);
+ }
+
AXIS2_LOG_INFO(system_env->log, "Shutdown complete ...");
system_exit(system_env, 0);
}
Modified: webservices/axis2/trunk/c/util/include/axutil_file_handler.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axutil_file_handler.h?rev=590865&r1=590864&r2=590865&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/include/axutil_file_handler.h (original)
+++ webservices/axis2/trunk/c/util/include/axutil_file_handler.h Wed Oct 31 17:06:33 2007
@@ -19,6 +19,7 @@
#define AXUTIL_FILE_HANDLER_H
#include <axutil_string.h>
+#include <stdio.h>
#ifdef __cplusplus
extern "C"
@@ -71,6 +72,15 @@
axutil_file_handler_access(
const axis2_char_t * path,
int mode);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axutil_file_handler_copy(
+ FILE *from,
+ FILE *to);
+
+ long
+ axutil_file_handler_size(
+ const axis2_char_t *const name);
/** @} */
Modified: webservices/axis2/trunk/c/util/include/axutil_log.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axutil_log.h?rev=590865&r1=590864&r2=590865&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/include/axutil_log.h (original)
+++ webservices/axis2/trunk/c/util/include/axutil_log.h Wed Oct 31 17:06:33 2007
@@ -38,8 +38,22 @@
*/
/**
- * Axis2 log levels.
- */
+ *Examples
+ *To write debug information to log
+ *AXIS2_LOG_DEBUG(log,AXIS2_LOG_SI,"log this %s %d","test",123);
+ *This would log
+ *"log this test 123" into the log file
+ *
+ *similar macros are defined for different log levels: CRITICAL,ERROR,WARNING and INFO
+ * and SERVICE
+ *
+ *CRITICAL and ERROR logs are always written to file and other logs are written
+ *depending on the log level set (log->level)
+ */
+
+ /**
+ * \brief Axis2 log levels
+ */
typedef enum axutil_log_levels
{
@@ -59,23 +73,25 @@
AXIS2_LOG_LEVEL_DEBUG,
/** Trace level, Enable with compiler time option AXIS2_TRACE */
- AXIS2_LOG_LEVEL_TRACE
+ AXIS2_LOG_LEVEL_TRACE,
+
+ /** Service level, logs only service level debug messages */
+ AXIS2_LOG_LEVEL_SERVICE
} axutil_log_levels_t;
/**
- * Axis2 log ops struct.
- *
- * Encapsulator struct for ops of axutil_log.
- */
+ * \brief Axis2 log ops struct
+ *
+ * Encapsulator struct for ops of axutil_log
+ */
struct axutil_log_ops
{
/**
- * Frees the log.
- * @param allocator pointer allocator to be used to free the struct
- * @param log pointer to log struct instance to be freed
- * @return void
+ * deletes the log
+ * @return axis2_status_t AXIS2_SUCCESS on success else AXIS2_FAILURE
*/
+
void(
AXIS2_CALL
* free)(
@@ -83,14 +99,11 @@
struct axutil_log * log);
/**
- * Writes to the log.
- * @param log pointer to log struct instance
- * @param buffer buffer to be written to log
- * @param level log level, one of axutil_log_levels enum values
- * @param file name of the source file from which the log is written
- * @param line line number of the source file from which the log is written
- * @return void
- */
+ * writes to the log
+ * @param buffer buffer to be written to log
+ * @param size size of the buffer to be written to log
+ * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
+ */
void(
AXIS2_CALL
* write)(
@@ -102,17 +115,21 @@
};
/**
- * Axis2 Log struct.
- * Log is the encapsulating struct for all log related data and operations.
- */
+ * \brief Axis2 Log struct
+ *
+ * Log is the encapsulating struct for all log related data and ops
+ */
struct axutil_log
{
- /** Log related operations */
+ /** Log related ops */
const axutil_log_ops_t *ops;
/** Log level */
axutil_log_levels_t level;
+
+ /** Maximum log file size */
+ int size;
/** Is logging enabled? */
axis2_bool_t enabled;
@@ -150,6 +167,14 @@
...);
AXIS2_EXTERN void AXIS2_CALL
+ axutil_log_impl_log_service(
+ axutil_log_t * log,
+ const axis2_char_t * filename,
+ const int linenumber,
+ const axis2_char_t * format,
+ ...);
+
+ AXIS2_EXTERN void AXIS2_CALL
axutil_log_impl_log_debug(
axutil_log_t * log,
const axis2_char_t * filename,
@@ -178,12 +203,14 @@
const axis2_char_t * file,
const int line);
+
#define AXIS2_LOG_FREE(allocator, log) \
axutil_log_free(allocator, log)
#define AXIS2_LOG_WRITE(log, buffer, level, file) \
axutil_log_write(log, buffer, level, file, AXIS2_LOG_SI)
+#define AXIS2_LOG_SERVICE axutil_log_impl_log_service
#define AXIS2_LOG_DEBUG axutil_log_impl_log_debug
#define AXIS2_LOG_INFO axutil_log_impl_log_info
#define AXIS2_LOG_WARNING axutil_log_impl_log_warning
Modified: webservices/axis2/trunk/c/util/src/file_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/file_handler.c?rev=590865&r1=590864&r2=590865&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/file_handler.c (original)
+++ webservices/axis2/trunk/c/util/src/file_handler.c Wed Oct 31 17:06:33 2007
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <platforms/axutil_platform_auto_sense.h>
+#include <sys/stat.h>
#include <axutil_file_handler.h>
@@ -67,3 +68,43 @@
}
return status;
}
+
+axis2_status_t
+axutil_file_handler_copy(
+ FILE *from,
+ FILE *to)
+{
+ axis2_char_t ch;
+
+ /* It is assumed that source and destination files are accessible and open*/
+ while(!feof(from))
+ {
+ ch = fgetc(from);
+ if(ferror(from))
+ {
+ /* Error reading source file */
+ return AXIS2_FAILURE;
+ }
+ if(!feof(from)) fputc(ch, to);
+ if(ferror(to))
+ {
+ /* Error writing destination file */
+ return AXIS2_FAILURE;
+ }
+ }
+ return AXIS2_SUCCESS;
+}
+
+long
+axutil_file_handler_size(
+ const axis2_char_t *const name)
+{
+ struct stat stbuf;
+ if(stat(name, &stbuf) == -1)
+ {
+ /* The file could not be accessed */
+ return AXIS2_FAILURE;
+ }
+ return stbuf.st_size;
+}
+
Modified: webservices/axis2/trunk/c/util/src/log.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/log.c?rev=590865&r1=590864&r2=590865&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/log.c (original)
+++ webservices/axis2/trunk/c/util/src/log.c Wed Oct 31 17:06:33 2007
@@ -23,10 +23,13 @@
#include <axutil_log_default.h>
#include <axutil_file_handler.h>
#include <axutil_thread.h>
-#include <signal.h>
typedef struct axutil_log_impl axutil_log_impl_t;
+static axis2_status_t
+axutil_log_impl_rotate(
+ axutil_log_t * log);
+
static void AXIS2_CALL axutil_log_impl_write(
axutil_log_t * log,
const axis2_char_t * buffer,
@@ -35,7 +38,7 @@
const int line);
AXIS2_EXTERN void AXIS2_CALL axutil_log_impl_write_to_file(
- FILE * fd,
+ axutil_log_t * log,
axutil_thread_mutex_t * mutex,
axutil_log_levels_t level,
const axis2_char_t * file,
@@ -50,6 +53,7 @@
{
axutil_log_t log;
void *stream;
+ axis2_char_t *file_name;
axutil_thread_mutex_t *mutex;
};
@@ -75,12 +79,13 @@
{
axutil_thread_mutex_destroy(log_impl->mutex);
}
- if (AXIS2_INTF_TO_IMPL(log)->stream)
+ if (log_impl->stream)
{
- if (log_impl->stream)
- {
- axutil_file_handler_close(log_impl->stream);
- }
+ axutil_file_handler_close(log_impl->stream);
+ }
+ if (log_impl->file_name)
+ {
+ AXIS2_FREE(allocator, log_impl->file_name);
}
AXIS2_FREE(allocator, log_impl);
}
@@ -95,8 +100,8 @@
{
axutil_log_impl_t *log_impl;
axis2_char_t *path_home;
- axis2_char_t log_file_name[500];
- axis2_char_t log_dir[500];
+ axis2_char_t log_file_name[AXUTIL_LOG_FILE_NAME_SIZE];
+ axis2_char_t log_dir[AXUTIL_LOG_FILE_NAME_SIZE];
axis2_char_t tmp_filename[100];
if (!allocator)
@@ -118,10 +123,6 @@
return NULL;
}
-#ifndef WIN32
- signal(SIGXFSZ, SIG_IGN);
-#endif
-
/* default log file is axis2.log */
if (stream_name)
AXIS2_SNPRINTF(tmp_filename, 100, "%s", stream_name);
@@ -135,37 +136,43 @@
{
if ((path_home = AXIS2_GETENV("AXIS2C_HOME")))
{
- AXIS2_SNPRINTF(log_dir, 500, "%s%c%s", path_home,
- AXIS2_PATH_SEP_CHAR, "logs");
+ AXIS2_SNPRINTF(log_dir, AXUTIL_LOG_FILE_NAME_SIZE, "%s%c%s",
+ path_home, AXIS2_PATH_SEP_CHAR, "logs");
if (AXIS2_SUCCESS ==
axutil_file_handler_access(log_dir, AXIS2_F_OK))
{
- AXIS2_SNPRINTF(log_file_name, 500, "%s%c%s", log_dir,
- AXIS2_PATH_SEP_CHAR, tmp_filename);
+ AXIS2_SNPRINTF(log_file_name, AXUTIL_LOG_FILE_NAME_SIZE,
+ "%s%c%s", log_dir, AXIS2_PATH_SEP_CHAR, tmp_filename);
}
else
{
- fprintf(stderr,
- "log folder %s does not exist - log file %s is written to . dir\n",
- log_dir, tmp_filename);
- AXIS2_SNPRINTF(log_file_name, 500, "%s", tmp_filename);
+ fprintf(stderr, "log folder %s does not exist - log file %s "\
+ "is written to . dir\n", log_dir, tmp_filename);
+ AXIS2_SNPRINTF(log_file_name, AXUTIL_LOG_FILE_NAME_SIZE, "%s",
+ tmp_filename);
}
}
else
{
fprintf(stderr,
"AXIS2C_HOME is not set - log is written to . dir\n");
- AXIS2_SNPRINTF(log_file_name, 500, "%s", tmp_filename);
+ AXIS2_SNPRINTF(log_file_name, AXUTIL_LOG_FILE_NAME_SIZE, "%s",
+ tmp_filename);
}
}
else
{
- AXIS2_SNPRINTF(log_file_name, 500, "%s", tmp_filename);
+ AXIS2_SNPRINTF(log_file_name, AXUTIL_LOG_FILE_NAME_SIZE, "%s",
+ tmp_filename);
}
+ log_impl->file_name = AXIS2_MALLOC(allocator, AXUTIL_LOG_FILE_NAME_SIZE);
+ log_impl->log.size = AXUTIL_LOG_FILE_SIZE;
+ sprintf(log_impl->file_name, "%s", log_file_name);
axutil_thread_mutex_lock(log_impl->mutex);
log_impl->stream = axutil_file_handler_open(log_file_name, "a+");
+ axutil_log_impl_rotate((axutil_log_t *) log_impl);
axutil_thread_mutex_unlock(log_impl->mutex);
@@ -222,6 +229,8 @@
case AXIS2_LOG_LEVEL_TRACE:
level_str = "[...TRACE...] ";
break;
+ case AXIS2_LOG_LEVEL_SERVICE:
+ break;
}
fprintf(stderr, "%s %s(%d) %s\n", level_str, file, line, buffer);
}
@@ -232,7 +241,7 @@
AXIS2_EXTERN void AXIS2_CALL
axutil_log_impl_write_to_file(
- FILE * fd,
+ axutil_log_t * log,
axutil_thread_mutex_t * mutex,
axutil_log_levels_t level,
const axis2_char_t * file,
@@ -240,6 +249,8 @@
const axis2_char_t * value)
{
const char *level_str = "";
+ axutil_log_impl_t *log_impl = AXIS2_INTF_TO_IMPL(log);
+ FILE *fd = NULL;
/**
* print all critical and error logs irrespective of log->level setting
@@ -265,8 +276,14 @@
case AXIS2_LOG_LEVEL_TRACE:
level_str = "[...TRACE...] ";
break;
+ case AXIS2_LOG_LEVEL_SERVICE:
+ break;
}
axutil_thread_mutex_lock(mutex);
+
+ axutil_log_impl_rotate(log);
+ fd = log_impl->stream;
+
if (file)
fprintf(fd, "[%s] %s%s(%d) %s\n", axutil_log_impl_get_time_str(),
level_str, file, line, value);
@@ -277,6 +294,84 @@
axutil_thread_mutex_unlock(mutex);
}
+static axis2_status_t
+axutil_log_impl_rotate(
+ axutil_log_t * log)
+{
+ long size = -1;
+ FILE *old_log_fd = NULL;
+ axis2_char_t old_log_file_name[AXUTIL_LOG_FILE_NAME_SIZE];
+ axutil_log_impl_t *log_impl = AXIS2_INTF_TO_IMPL(log);
+ if(log_impl->file_name)
+ size = axutil_file_handler_size(log_impl->file_name);
+
+ if(size >= log->size)
+ {
+ AXIS2_SNPRINTF(old_log_file_name, AXUTIL_LOG_FILE_NAME_SIZE, "%s%s",
+ log_impl->file_name, ".old");
+ axutil_file_handler_close(log_impl->stream);
+ old_log_fd = axutil_file_handler_open(old_log_file_name, "w+");
+ log_impl->stream = axutil_file_handler_open(log_impl->file_name, "r");
+ if(old_log_fd && log_impl->stream)
+ {
+ axutil_file_handler_copy(log_impl->stream, old_log_fd);
+ axutil_file_handler_close(old_log_fd);
+ axutil_file_handler_close(log_impl->stream);
+ old_log_fd = NULL;
+ log_impl->stream = NULL;
+ }
+ if(old_log_fd)
+ {
+ axutil_file_handler_close(old_log_fd);
+ }
+ if(log_impl->stream)
+ {
+ axutil_file_handler_close(log_impl->stream);
+ }
+ log_impl->stream = axutil_file_handler_open(log_impl->file_name, "w+");
+ }
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN void AXIS2_CALL
+axutil_log_impl_log_service(
+ axutil_log_t * log,
+ const axis2_char_t * filename,
+ const int linenumber,
+ const axis2_char_t * format,
+ ...)
+{
+ FILE *fd = NULL;
+ axutil_thread_mutex_t *mutex = NULL;
+
+ if (log && format)
+ {
+
+ if (!(fd = AXIS2_INTF_TO_IMPL(log)->stream))
+ {
+ fprintf(stderr, "Stream is not found\n");
+ }
+
+ if (!(mutex = AXIS2_INTF_TO_IMPL(log)->mutex))
+ {
+ fprintf(stderr, "Log mutex is not found\n");
+
+ }
+ if (AXIS2_LOG_LEVEL_DEBUG <= log->level)
+ {
+ char value[AXIS2_LEN_VALUE + 1];
+ va_list ap;
+ va_start(ap, format);
+ AXIS2_VSNPRINTF(value, AXIS2_LEN_VALUE, format, ap);
+ va_end(ap);
+ axutil_log_impl_write_to_file(log, mutex, AXIS2_LOG_LEVEL_DEBUG,
+ filename, linenumber, value);
+ }
+ }
+ else
+ fprintf(stderr, "please check your log and buffer");
+}
+
AXIS2_EXTERN void AXIS2_CALL
axutil_log_impl_log_debug(
axutil_log_t * log,
@@ -302,14 +397,15 @@
}
- if (AXIS2_LOG_LEVEL_DEBUG <= log->level)
+ if (AXIS2_LOG_LEVEL_DEBUG <= log->level &&
+ log->level != AXIS2_LOG_LEVEL_SERVICE)
{
char value[AXIS2_LEN_VALUE + 1];
va_list ap;
va_start(ap, format);
AXIS2_VSNPRINTF(value, AXIS2_LEN_VALUE, format, ap);
va_end(ap);
- axutil_log_impl_write_to_file(fd, mutex, AXIS2_LOG_LEVEL_DEBUG,
+ axutil_log_impl_write_to_file(log, mutex, AXIS2_LOG_LEVEL_DEBUG,
filename, linenumber, value);
}
}
@@ -340,15 +436,16 @@
}
- if (AXIS2_LOG_LEVEL_INFO <= log->level)
+ if (AXIS2_LOG_LEVEL_INFO <= log->level &&
+ log->level != AXIS2_LOG_LEVEL_SERVICE)
{
char value[AXIS2_LEN_VALUE + 1];
va_list ap;
va_start(ap, format);
AXIS2_VSNPRINTF(value, AXIS2_LEN_VALUE, format, ap);
va_end(ap);
- axutil_log_impl_write_to_file(fd, mutex, AXIS2_LOG_LEVEL_INFO, NULL,
- -1, value);
+ axutil_log_impl_write_to_file(log, mutex, AXIS2_LOG_LEVEL_INFO,
+ NULL, -1, value);
}
}
else
@@ -381,15 +478,16 @@
}
- if (AXIS2_LOG_LEVEL_WARNING <= log->level)
+ if (AXIS2_LOG_LEVEL_WARNING <= log->level &&
+ log->level != AXIS2_LOG_LEVEL_SERVICE)
{
char value[AXIS2_LEN_VALUE + 1];
va_list ap;
va_start(ap, format);
AXIS2_VSNPRINTF(value, AXIS2_LEN_VALUE, format, ap);
va_end(ap);
- axutil_log_impl_write_to_file(fd, mutex, AXIS2_LOG_LEVEL_WARNING,
- filename, linenumber, value);
+ axutil_log_impl_write_to_file(log, mutex,
+ AXIS2_LOG_LEVEL_WARNING, filename, linenumber, value);
}
}
else
@@ -427,7 +525,7 @@
va_start(ap, format);
AXIS2_VSNPRINTF(value, AXIS2_LEN_VALUE, format, ap);
va_end(ap);
- axutil_log_impl_write_to_file(fd, mutex, AXIS2_LOG_LEVEL_ERROR,
+ axutil_log_impl_write_to_file(log, mutex, AXIS2_LOG_LEVEL_ERROR,
filename, linenumber, value);
}
else
@@ -467,7 +565,7 @@
va_start(ap, format);
AXIS2_VSNPRINTF(value, AXIS2_LEN_VALUE, format, ap);
va_end(ap);
- axutil_log_impl_write_to_file(fd, mutex, AXIS2_LOG_LEVEL_CRITICAL,
+ axutil_log_impl_write_to_file(log, mutex, AXIS2_LOG_LEVEL_CRITICAL,
filename, linenumber, value);
}
else
@@ -520,6 +618,8 @@
}
axutil_thread_mutex_lock(log_impl->mutex);
+ log_impl->file_name = NULL;
+ log_impl->log.size = AXUTIL_LOG_FILE_SIZE;
log_impl->stream = stderr;
axutil_thread_mutex_unlock(log_impl->mutex);
/* by default, log is enabled */
@@ -557,14 +657,15 @@
}
- if (AXIS2_LOG_LEVEL_TRACE <= log->level)
+ if (AXIS2_LOG_LEVEL_TRACE <= log->level &&
+ log->level != AXIS2_LOG_LEVEL_SERVICE)
{
char value[AXIS2_LEN_VALUE + 1];
va_list ap;
va_start(ap, format);
AXIS2_VSNPRINTF(value, AXIS2_LEN_VALUE, format, ap);
va_end(ap);
- axutil_log_impl_write_to_file(fd, mutex, AXIS2_LOG_LEVEL_TRACE,
+ axutil_log_impl_write_to_file(log, mutex, AXIS2_LOG_LEVEL_TRACE,
filename, linenumber, value);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org