Index: /trunk/src/VBox/Runtime/VBox/log-vbox.cpp
===================================================================
--- /trunk/src/VBox/Runtime/VBox/log-vbox.cpp	(revision 83659)
+++ /trunk/src/VBox/Runtime/VBox/log-vbox.cpp	(revision 83660)
@@ -497,17 +497,23 @@
      */
 #ifdef IN_RING3
-# ifndef IN_GUEST
-    char szExecName[RTPATH_MAX];
-    if (!RTProcGetExecutablePath(szExecName, sizeof(szExecName)))
-        strcpy(szExecName, "VBox");
+    const char *pszExeName = RTProcShortName();
+    if (!pszExeName)
+        pszExeName = "VBox";
     RTTIMESPEC TimeSpec;
     RTTIME Time;
     RTTimeExplode(&Time, RTTimeNow(&TimeSpec));
-    rc = RTLogCreate(&pLogger, 0, NULL, "VBOX_LOG", RT_ELEMENTS(g_apszGroups), &g_apszGroups[0], RTLOGDEST_FILE,
+    rc = RTLogCreate(&pLogger, 0, NULL, "VBOX_LOG", RT_ELEMENTS(g_apszGroups), &g_apszGroups[0],
+# ifdef IN_GUEST
+                     RTLOGDEST_USER /* backdoor */,
+                     "./VBoxGAs-%04d-%02d-%02d-%02d-%02d-%02d.%03d-%s-%d.log",
+# else
+                     RTLOGDEST_FILE,
                      "./%04d-%02d-%02d-%02d-%02d-%02d.%03d-%s-%d.log",
-                     Time.i32Year, Time.u8Month, Time.u8MonthDay, Time.u8Hour, Time.u8Minute, Time.u8Second, Time.u32Nanosecond / 10000000,
-                     RTPathFilename(szExecName), RTProcSelf());
+# endif
+                     Time.i32Year, Time.u8Month, Time.u8MonthDay, Time.u8Hour, Time.u8Minute, Time.u8Second,
+                     Time.u32Nanosecond / 10000000, pszExeName, RTProcSelf());
     if (RT_SUCCESS(rc))
     {
+# ifndef IN_GUEST
         /*
          * Write a log header.
@@ -516,5 +522,5 @@
         RTTimeSpecToString(&TimeSpec, szBuf, sizeof(szBuf));
         RTLogLoggerEx(pLogger, 0, ~0U, "Log created: %s\n", szBuf);
-        RTLogLoggerEx(pLogger, 0, ~0U, "Executable: %s\n", szExecName);
+        RTLogLoggerEx(pLogger, 0, ~0U, "Executable: %s\n", RTProcGetExecutablePath(szBuf, sizeof(szBuf)));
 
         /* executable and arguments - tricky and all platform specific. */
@@ -526,5 +532,5 @@
         char szArgFileBuf[80];
         RTStrPrintf(szArgFileBuf, sizeof(szArgFileBuf), "/proc/%ld/psinfo", (long)getpid());
-        FILE* pFile = fopen(szArgFileBuf, "rb");
+        FILE *pFile = fopen(szArgFileBuf, "rb");
         if (pFile)
         {
@@ -582,15 +588,15 @@
         /* Retrieve the required length first */
         int aiName[4];
-#  if defined(RT_OS_FREEBSD)
+#   if defined(RT_OS_FREEBSD)
         aiName[0] = CTL_KERN;
         aiName[1] = KERN_PROC;
         aiName[2] = KERN_PROC_ARGS;     /* Introduced in FreeBSD 4.0 */
         aiName[3] = getpid();
-#  elif defined(RT_OS_NETBSD)
+#   elif defined(RT_OS_NETBSD)
         aiName[0] = CTL_KERN;
         aiName[1] = KERN_PROC_ARGS;
         aiName[2] = getpid();
         aiName[3] = KERN_PROC_ARGV;
-#  endif
+#   endif
         size_t cchArgs = 0;
         int rcBSD = sysctl(aiName, RT_ELEMENTS(aiName), NULL, &cchArgs, NULL, 0);
@@ -625,10 +631,6 @@
 #   error needs porting.
 #  endif
+# endif /* IN_GUEST */
     }
-
-# else  /* IN_GUEST */
-    /* The user destination is backdoor logging. */
-    rc = RTLogCreate(&pLogger, 0, NULL, "VBOX_LOG", RT_ELEMENTS(g_apszGroups), &g_apszGroups[0], RTLOGDEST_USER, "VBox.log");
-# endif /* IN_GUEST */
 
 #else /* IN_RING0 */
