You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2011/11/18 09:13:29 UTC

svn commit: r1203520 - /tomcat/jk/trunk/native/iis/jk_isapi_plugin.c

Author: mturk
Date: Fri Nov 18 08:13:29 2011
New Revision: 1203520

URL: http://svn.apache.org/viewvc?rev=1203520&view=rev
Log:
No need for setting the logger to itself. We have a single global logger

Modified:
    tomcat/jk/trunk/native/iis/jk_isapi_plugin.c

Modified: tomcat/jk/trunk/native/iis/jk_isapi_plugin.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/iis/jk_isapi_plugin.c?rev=1203520&r1=1203519&r2=1203520&view=diff
==============================================================================
--- tomcat/jk/trunk/native/iis/jk_isapi_plugin.c (original)
+++ tomcat/jk/trunk/native/iis/jk_isapi_plugin.c Fri Nov 18 08:13:29 2011
@@ -2510,13 +2510,14 @@ static DWORD WINAPI watchdog_thread(void
  * Reinitializes the logger, formatting the log file name if rotation is enabled,
  * and calculating the next rotation time if applicable.
  */
-static int init_logger(int rotate, jk_logger_t **l)
+static int init_logger(int rotate)
 {
     int rc = JK_TRUE;
     int log_open = rotate;  /* log is assumed open if a rotate is requested */
     char *log_file_name;
     char log_file_name_buf[MAX_PATH*2];
-
+    jk_logger_t *org = NULL;
+    
     /* If log rotation is enabled, format the log filename */
     if ((log_rotationtime > 0) || (log_filesize > 0)) {
         time_t t;
@@ -2552,7 +2553,7 @@ static int init_logger(int rotate, jk_lo
         FILE* lf = ((jk_file_logger_t* )logger->logger_private)->logfile;
         fprintf(lf, "Log rotated to %s\n", log_file_name);
         fflush(lf);
-        rc = jk_close_file_logger(&logger);
+        org = logger;
         log_open = JK_FALSE;
     }
 
@@ -2565,13 +2566,13 @@ static int init_logger(int rotate, jk_lo
             rc = JK_TRUE;
         }
         else {
-            logger = NULL;
+            logger = org;
+            org = NULL;
             rc = JK_FALSE;
         }
     }
-
-    /* Update logger being used for this log call so it occurs on new file */
-    (*l) = logger;
+    if (org)
+        jk_close_file_logger(&org);
     return rc;
 }
 
@@ -2580,7 +2581,7 @@ static int init_logger(int rotate, jk_lo
  * The behaviour here is based on the Apache rotatelogs program.
  * http://httpd.apache.org/docs/2.0/programs/rotatelogs.html
  */
-static int JK_METHOD rotate_log_file(jk_logger_t **l)
+static int JK_METHOD rotate_log_file(void)
 {
     int rc = JK_TRUE;
     int rotate = JK_FALSE;
@@ -2592,9 +2593,9 @@ static int JK_METHOD rotate_log_file(jk_
             rotate = JK_TRUE;
         }
     }
-    else if (log_filesize > 0) {
+    else if (log_filesize > 0 && logger) {
         LARGE_INTEGER filesize;
-        HANDLE h = (HANDLE)_get_osfhandle(fileno(((jk_file_logger_t *)(*l)->logger_private)->logfile));
+        HANDLE h = (HANDLE)_get_osfhandle(fileno(((jk_file_logger_t *)(logger)->logger_private)->logfile));
         GetFileSizeEx(h, &filesize);
 
         if ((ULONGLONG)filesize.QuadPart >= log_filesize) {
@@ -2602,7 +2603,7 @@ static int JK_METHOD rotate_log_file(jk_
         }
     }
     if (rotate) {
-        rc = init_logger(JK_TRUE, l);
+        rc = init_logger(JK_TRUE);
     }
     return rc;
 }
@@ -2630,9 +2631,9 @@ static int JK_METHOD iis_log_to_file(jk_
 
             /* Perform logging within critical section to protect rotation */
             EnterCriticalSection(&log_cs);
-            if (rotate_log_file(&l)) {
+            if (rotate_log_file() && logger) {
                 /* The rotation process will reallocate the jk_logger_t structure, so refetch */
-                FILE *rotated = ((jk_file_logger_t *)l->logger_private)->logfile;
+                FILE *rotated = ((jk_file_logger_t *)logger->logger_private)->logfile;
                 fputs(what, rotated);
                 fflush(rotated);
             }
@@ -2647,7 +2648,7 @@ static int init_jk(char *serverName)
     char shm_name[MAX_PATH];
     int i, rc = JK_FALSE;
 
-    init_logger(JK_FALSE, &logger);
+    init_logger(JK_FALSE);
     /* TODO: Use System logging to notify the user that
      *       we cannot open the configured log file.
      */



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org