blob: f0584293d8a361b3e8f5e1a9334a79adf30f76e0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/*
* Oreka -- A media capture and retrieval platform
*
* Copyright (C) 2005, orecx LLC
*
* http://www.orecx.com
*
* This program is free software, distributed under the terms of
* the GNU General Public License.
* Please refer to http://www.gnu.org/copyleft/gpl.html
*
*/
#define _WINSOCKAPI_ // prevents the inclusion of winsock.h
#include "ace/OS_NS_dirent.h"
#include "LogManager.h"
#include <log4cxx/propertyconfigurator.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/logmanager.h>
OrkLogManager OrkLogManager::m_orkLogManager;
OrkLogManager* OrkLogManager::Instance()
{
return &m_orkLogManager;
}
void OrkLogManager::Initialize()
{
BasicConfigurator::configure();
char* logCfgFilename = NULL;
char* cfgEnvPath = "";
int cfgAlloc = 0;
cfgEnvPath = ACE_OS::getenv("ORKAUDIO_CONFIG_PATH");
if(cfgEnvPath) {
ACE_DIR* dir = ACE_OS::opendir(cfgEnvPath);
if(dir) {
int len = 0;
ACE_OS::closedir(dir);
len = strlen(cfgEnvPath)+1+strlen("logging.properties")+1;
logCfgFilename = (char*)malloc(len);
if(logCfgFilename) {
cfgAlloc = 1;
ACE_OS::snprintf(logCfgFilename, len, "%s/%s", cfgEnvPath, "logging.properties");
}
}
}
if(!logCfgFilename) {
FILE* file = ACE_OS::fopen("logging.properties", "r");
if(file)
{
// logging.properties exists in the current directory
logCfgFilename = (char*)"logging.properties";
fclose(file);
}
else
{
// logging.properties could not be found in the current
// directory, try to find it in system configuration directory
logCfgFilename = (char*)"/etc/orkaudio/logging.properties";
}
}
// If this one fails, the above default configuration stays valid
PropertyConfigurator::configure(logCfgFilename);
// XXX should we free this here?
if(cfgAlloc) {
free(logCfgFilename);
}
rootLog = Logger::getLogger("root");
topLog = Logger::getLogger("top");
immediateProcessingLog = Logger::getLogger("immediateProcessing");
batchProcessingLog = Logger::getLogger("batchProcessing");
tapeFileNamingLog = Logger::getLogger("tapeFileNamingLog");
portLog = Logger::getLogger("port");
fileLog = Logger::getLogger("file");
reportingLog = Logger::getLogger("reporting");
configLog = Logger::getLogger("config");
tapelistLog = Logger::getLogger("tapelist");
tapeLog = Logger::getLogger("tape");
clientLog = Logger::getLogger("orkclient");
}
void OrkLogManager::Shutdown()
{
log4cxx::LogManager::shutdown();
}
|