summaryrefslogtreecommitdiff
path: root/src/logd.cpp
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2013-04-06 13:14:45 +0200
committerPaul Buetow <paul@buetow.org>2013-04-06 13:14:45 +0200
commitd34015c5ba231b95de20e9fcd7a33c5b2b9a1006 (patch)
treeceac33bd27e3b1158a0ac4e17f7fd7e5e6473fea /src/logd.cpp
parentc507ce3198ea4d822832cc8740f0128df8873c02 (diff)
tagging ychat-0.5.3ychat-0.5.3
Diffstat (limited to 'src/logd.cpp')
-rw-r--r--[-rwxr-xr-x]src/logd.cpp163
1 files changed, 27 insertions, 136 deletions
diff --git a/src/logd.cpp b/src/logd.cpp
index 664cd14..63c2a64 100755..100644
--- a/src/logd.cpp
+++ b/src/logd.cpp
@@ -1,175 +1,66 @@
-
-#ifndef LOGD_CPP
-#define LOGD_CPP
+#ifndef LOGD_CXX
+#define LOGD_CXX
#include "logd.h"
-#ifdef LOGGING
-
-#include <fstream>
-
-logd::logd( string s_filename, string s_log_lines )
-{
- initialize( s_filename, tool::string2int(s_log_lines) );
-}
-
-logd::logd( string s_filename, int i_log_lines )
-{
- initialize( s_filename, i_log_lines );
-}
-
-logd::~logd()
+logd::logd( string filename )
{
- flush_logs();
- pthread_mutex_destroy( &mut_s_logging );
-}
-
-void
-logd::initialize( string s_filename, int i_log_lines )
-{
- pthread_mutex_init( &mut_s_logging, NULL );
-
- if( s_filename.empty() )
+ if(filename.empty())
{
- wrap::system_message( LOGERR2 );
+ cerr << "ycLog: No filename specified" << endl;
exit(1);
}
- //if (wrap::NCUR->is_ready())
- // wrap::system_message(LOGGINI+s_filename);
+ s_logfile=filename;
- s_logfile = s_filename;
- i_lines = i_log_lines;
-}
-
-string
-logd::get_time_string()
-{
- struct tm *t_m;
- time_t t_cur = time(NULL);
- t_m = gmtime(&t_cur);
+ i_lines=s_tool::string2int( s_conf::get
+ ().get_val("LOG_LINES"));
- char c_buf[100];
- c_buf[99] = '\0';
- strftime(c_buf, 100, "[%d/%b/%Y:%H:%M:%S %z]", t_m);
-
- return string(c_buf);
}
-
-void
-logd::flush()
+void logd::flush()
{
- ofstream of_output;
- of_output.open(s_logfile.c_str(), ios::app);
+ s_output.open(s_logfile.c_str(), ios::app);
- if( of_output == NULL )
+ if(s_output==NULL)
{
- wrap::system_message( LOGERR1 + s_logfile );
+ cerr << "ycLog: Could not open file: " << s_logfile << endl;
exit(1);
}
- while( ! s_queue.empty() )
+
+ while(!s_queue.empty())
{
string s_l=s_queue.front();
s_queue.pop();
- of_output.write( s_l.c_str(), s_l.size() );
- }
-
- of_output.close();
-}
-
-void
-logd::log_access( map<string,string> &map_request )
-{
- //static int i_access_lines = wrap::CONF->get_elem("httpd.logging.access_lines");
-
- string s_time = get_time_string();
- string s_logstr = map_request["REMOTE_ADDR"] + " - - "+s_time+" \"" + map_request["QUERY_STRING"]+"\" 200 0 \""+map_request["request"]+"\" \""+map_request["User-Agent"]+"\"\n";
+ s_output.write(s_l.c_str(), s_l.size());
- pthread_mutex_lock ( &mut_s_logging );
- s_queue.push(s_logstr);
-
- if ( s_queue.size() > i_lines )
- flush();
-
- pthread_mutex_unlock( &mut_s_logging );
+ }
+ s_output.close();
}
-
-void
-logd::log_simple_line( string s_line )
+void logd::log( map_string request )
{
- // Dont log empty lines!
- if (s_line.empty())
- return;
+ struct tm *t_m;
+ time_t t_cur=time(NULL);
+ t_m=gmtime(&t_cur);
- string s_time = get_time_string();
- string s_logstr = s_time + " " + s_line;
+ char buffer[100];
+ strftime(buffer, 100, "[%d/%b/%Y:%H:%M:%S %z]", t_m);
+ string s_time=buffer;
+ string s_logstr = request["REMOTE_ADDR"] + " - - "+s_time+" \"" + request["QUERY_STRING"]+"\" 200 0 \""+request["request"]+"\" \""+request["User-Agent"]+"\"\n";
- pthread_mutex_lock ( &mut_s_logging );
s_queue.push(s_logstr);
- if ( s_queue.size() > i_lines )
+ if(s_queue.size()>=i_lines)
flush();
-
- pthread_mutex_unlock( &mut_s_logging );
-}
-
-void
-logd::set_logfile( string s_path, string s_filename )
-{
- // Remove "/" from filename!
- unsigned i_pos = s_filename.find( "/" );
- while ( i_pos != string::npos )
- {
- s_filename.replace( i_pos, 1, "SLASH" );
- i_pos = s_filename.find( "/" );
- }
-
- // Remove "\" from filename (for non unix systems)!
- i_pos = s_filename.find( "\\" );
- while ( i_pos != string::npos )
- {
- s_filename.replace( i_pos, 1, "BACKSLASH" );
- i_pos = s_filename.find( "\\" );
- }
-
- pthread_mutex_lock ( &mut_s_logging );
- this->s_logfile = s_path + s_filename;
- pthread_mutex_unlock( &mut_s_logging );
}
-void
-logd::flush_logs()
+logd::~logd()
{
- pthread_mutex_lock ( &mut_s_logging );
flush();
- pthread_mutex_unlock( &mut_s_logging );
}
-string
-logd::remove_html_tags( string s_logs )
-{
- unsigned pos[2];
- while ( (pos[0] = s_logs.find("<")) != string::npos )
- {
- if ( (pos[1] = s_logs.find(">", pos[0])) != string::npos )
- s_logs.replace( pos[0], pos[1]-pos[0]+1, "");
- else
- break;
- }
-
- if ( s_logs == "\n" )
- return "";
- return s_logs;
-}
-void
-logd::set_lines( const int i_lines )
-{
- this->i_lines = i_lines;
-}
#endif
-#endif