summaryrefslogtreecommitdiff
path: root/src/logger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/logger.cpp')
-rw-r--r--src/logger.cpp59
1 files changed, 3 insertions, 56 deletions
diff --git a/src/logger.cpp b/src/logger.cpp
index 20235a826..8e887830d 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -333,57 +333,17 @@ void LogManager::Log(const std::string &type, int loglevel, const std::string &m
FileWriter::FileWriter(InspIRCd* Instance, FILE* logfile)
: ServerInstance(Instance), log(logfile), writeops(0)
{
- if (log)
- {
- Instance->SE->NonBlocking(fileno(log));
- SetFd(fileno(log));
- buffer.clear();
- }
}
-bool FileWriter::Readable()
+void FileWriter::HandleEvent(EventType ev, int)
{
- return false;
-}
-
-void FileWriter::HandleEvent(EventType, int)
-{
- WriteLogLine("");
- if (log)
- {
- ServerInstance->SE->DelFd(this);
- }
}
void FileWriter::WriteLogLine(const std::string &line)
{
- if (line.length())
- {
- buffer.append(line);
- }
-
if (log)
{
- int written = fprintf(log,"%s",buffer.c_str());
-#ifdef WINDOWS
- buffer.clear();
-#else
- if ((written >= 0) && (written < (int)buffer.length()))
- {
- buffer.erase(0, buffer.length());
- ServerInstance->SE->AddFd(this);
- }
- else if (written == -1)
- {
- if (errno == EAGAIN)
- ServerInstance->SE->AddFd(this);
- }
- else
- {
- /* Wrote the whole buffer, and no need for write callback */
- buffer.clear();
- }
-#endif
+ fprintf(log,"%s",line.c_str());
if (writeops++ % 20)
{
fflush(log);
@@ -395,25 +355,12 @@ void FileWriter::Close()
{
if (log)
{
- ServerInstance->SE->Blocking(fileno(log));
-
- if (buffer.size())
- {
- fprintf(log,"%s",buffer.c_str());
- }
-
-#ifndef WINDOWS
- ServerInstance->SE->DelFd(this);
-#endif
-
fflush(log);
fclose(log);
}
-
- buffer.clear();
}
FileWriter::~FileWriter()
{
- this->Close();
}
+