[go: up one dir, main page]

Menu

[r274]: / codeblue2 / common / log.cpp  Maximize  Restore  History

Download this file

84 lines (64 with data), 2.4 kB

 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
/*****************************************************************************
Copyright © 2006 - 2008, The Board of Trustees of the University of Illinois.
All Rights Reserved.
Sector: A Distributed Storage and Computing Infrastructure
National Center for Data Mining (NCDM)
University of Illinois at Chicago
http://www.ncdm.uic.edu/
Sector is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.
Sector is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/
/*****************************************************************************
written by
Yunhong Gu [gu@lac.uic.edu], last updated 11/25/2008
*****************************************************************************/
#include "log.h"
#include <time.h>
#include <string>
#include <cstring>
#include <iostream>
using namespace std;
SectorLog::SectorLog()
{
pthread_mutex_init(&m_LogLock, NULL);
}
SectorLog::~SectorLog()
{
pthread_mutex_destroy(&m_LogLock);
}
int SectorLog::init(const char* path)
{
m_LogFile.open(path, ios::trunc);
if (m_LogFile.bad() || m_LogFile.fail())
return -1;
return 0;
}
void SectorLog::close()
{
m_LogFile.close();
}
void SectorLog::insert(const char* text)
{
pthread_mutex_lock(&m_LogLock);
time_t t = time(NULL);
char ct[64];
sprintf(ct, "%s", ctime(&t));
ct[strlen(ct) - 1] = '\0';
m_LogFile << ct << "\t" << text << endl;
m_LogFile.flush();
pthread_mutex_unlock(&m_LogLock);
}
void SectorLog::logUserActivity(const char* user, const char* ip, const char* cmd, const char* file, const char* res, const char* slave)
{
char* text = new char[128 + strlen(file)];
sprintf(text, "user request => USER: %s IP: %s CMD: %s FILE/DIR: %s RESULT: %s SLAVE: %s", user, ip, cmd, file, res, slave);
insert(text);
delete [] text;
}