Всем доброго времени суток.
Такая проблема: Есть DLL( С++ MSVS 2008 ), которая подключается к некому серверу( в их нотации плагин для расширения ) и выполняет некоторые действия. Для логирование в DLL используется log4cxx( в виде еще одной dll ). Настройка ведется через xml. Если при описании FileAppender'a использовать тег file = "//log/plugin.log", то писать будет C:\\log\plugin.log. Если file = "log/plugin.log" ( ждем создание поддиректории и в ней файл ), то пишет в C:\Windows\SysWOW64\log\plugin.log. Нормально отрабатывают только прямые пути. Может кто встречался с этим и как решить? Буду благодарен за любую помощь.
Здравствуйте, <Аноним>, Вы писали:
А>Всем доброго времени суток. А>Такая проблема: Есть DLL( С++ MSVS 2008 ), которая подключается к некому серверу( в их нотации плагин для расширения ) и выполняет некоторые действия. Для логирование в DLL используется log4cxx( в виде еще одной dll ). Настройка ведется через xml. Если при описании FileAppender'a использовать тег file = "//log/plugin.log", то писать будет C:\\log\plugin.log. Если file = "log/plugin.log" ( ждем создание поддиректории и в ней файл ), то пишет в C:\Windows\SysWOW64\log\plugin.log. Нормально отрабатывают только прямые пути. Может кто встречался с этим и как решить? Буду благодарен за любую помощь.
Может у процесса текущая директория — C:\Windows\SysWOW64 ?
Здравствуйте, Peregrin, Вы писали:
P>Здравствуйте, <Аноним>, Вы писали:
А>>Всем доброго времени суток. А>>Такая проблема: Есть DLL( С++ MSVS 2008 ), которая подключается к некому серверу( в их нотации плагин для расширения ) и выполняет некоторые действия. Для логирование в DLL используется log4cxx( в виде еще одной dll ). Настройка ведется через xml. Если при описании FileAppender'a использовать тег file = "//log/plugin.log", то писать будет C:\\log\plugin.log. Если file = "log/plugin.log" ( ждем создание поддиректории и в ней файл ), то пишет в C:\Windows\SysWOW64\log\plugin.log. Нормально отрабатывают только прямые пути. Может кто встречался с этим и как решить? Буду благодарен за любую помощь.
P>Может у процесса текущая директория — C:\Windows\SysWOW64 ?
Там Windows Server 2003, и процесс запущен как служба от уч. записи SYSTEM.
Но exe находится на другом локальном диске(D).
Здравствуйте, GaRDi, Вы писали:
P>>Может у процесса текущая директория — C:\Windows\SysWOW64 ?
GRD>Там Windows Server 2003, и процесс запущен как служба от уч. записи SYSTEM. GRD>Но exe находится на другом локальном диске(D).
Где находится exe не важно. Текущую директорию процесса можно посмотреть Process Explorer'ом. И у служб она обычно C:\Windows\System32 (а на 64-битной винде для 32-битного приложение это C:\Windows\SysWOW64 и есть).
У процесса текущая директория — C:\Windows\SysWOW64. Потому как сервис.
Где находится ехе — совершенно при этом не важно.
Если необходимо писать лог именно рядом с ехе, можно в конфиге прописать путь как ${EXEPATH}\log\plugin.log
и перед вызовом DOMConfigurator::configure вручную добавить переменную EXEPATH с соответствующим содержимым в environment с помощью putenv.
Здравствуйте, GaRDi, Вы писали:
GRD>Там Windows Server 2003, и процесс запущен как служба от уч. записи SYSTEM. GRD>Но exe находится на другом локальном диске(D).
Здравствуйте, Draqon, Вы писали:
D>У процесса текущая директория — C:\Windows\SysWOW64. Потому как сервис. D>Где находится ехе — совершенно при этом не важно. D>Если необходимо писать лог именно рядом с ехе, можно в конфиге прописать путь как ${EXEPATH}\log\plugin.log D>и перед вызовом DOMConfigurator::configure вручную добавить переменную EXEPATH с соответствующим содержимым в environment с помощью putenv.
D>Здравствуйте, GaRDi, Вы писали:
GRD>>Там Windows Server 2003, и процесс запущен как служба от уч. записи SYSTEM. GRD>>Но exe находится на другом локальном диске(D).