Added the ability to initialize a FileAppender from environment variables (WLOG_FILEA...
authorMike McDonald <Mike.McDonald@software.dell.com>
Thu, 12 Mar 2015 12:57:01 +0000 (08:57 -0400)
committerMike McDonald <Mike.McDonald@software.dell.com>
Thu, 12 Mar 2015 12:57:01 +0000 (08:57 -0400)
winpr/libwinpr/utils/wlog/FileAppender.c

index 90ce6cb..42a7d25 100644 (file)
@@ -22,6 +22,7 @@
 #endif
 
 #include <winpr/crt.h>
+#include <winpr/environment.h>
 #include <winpr/file.h>
 #include <winpr/path.h>
 #include <winpr/thread.h>
@@ -184,6 +185,9 @@ int WLog_FileAppender_WriteImageMessage(wLog* log, wLogFileAppender* appender, w
 
 wLogFileAppender* WLog_FileAppender_New(wLog* log)
 {
+       LPSTR env;
+       LPCSTR name;
+       DWORD nSize;
        wLogFileAppender* FileAppender;
 
        FileAppender = (wLogFileAppender*) malloc(sizeof(wLogFileAppender));
@@ -207,7 +211,33 @@ wLogFileAppender* WLog_FileAppender_New(wLog* log)
                FileAppender->FileName = NULL;
                FileAppender->FilePath = NULL;
                FileAppender->FullFileName = NULL;
-       }
+
+               name = "WLOG_FILEAPPENDER_OUTPUT_FILE_PATH";
+               nSize = GetEnvironmentVariableA(name, NULL, 0);
+               if (nSize)
+               {
+                       env = (LPSTR) malloc(nSize);
+                       if (env)
+                       {
+                               nSize = GetEnvironmentVariableA(name, env, nSize);
+                               WLog_FileAppender_SetOutputFilePath(log, FileAppender, env);
+                               free(env);
+                       }
+               }
+
+               name = "WLOG_FILEAPPENDER_OUTPUT_FILE_NAME";
+               nSize = GetEnvironmentVariableA(name, NULL, 0);
+               if (nSize)
+               {
+                       env = (LPSTR) malloc(nSize);
+                       if (env)
+                       {
+                               nSize = GetEnvironmentVariableA(name, env, nSize);
+                               WLog_FileAppender_SetOutputFileName(log, FileAppender, env);
+                               free(env);
+                       }
+               }
+       }       
 
        return FileAppender;
 }