Browse Source

2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Rewritten Logger interface. Logger now writes source file name and
	line number in log file.
Tatsuhiro Tsujikawa 15 năm trước cách đây
mục cha
commit
580098eb49
100 tập tin đã thay đổi với 843 bổ sung1177 xóa
  1. 5 0
      ChangeLog
  2. 12 15
      src/AbstractBtMessage.cc
  3. 0 8
      src/AbstractBtMessage.h
  4. 80 124
      src/AbstractCommand.cc
  5. 6 8
      src/AbstractDiskWriter.cc
  6. 0 4
      src/AbstractDiskWriter.h
  7. 10 11
      src/ActivePeerConnectionCommand.cc
  8. 8 12
      src/AdaptiveFileAllocationIterator.cc
  9. 0 3
      src/AdaptiveFileAllocationIterator.h
  10. 35 37
      src/AdaptiveURISelector.cc
  11. 0 3
      src/AdaptiveURISelector.h
  12. 14 18
      src/BtDependency.cc
  13. 0 2
      src/BtDependency.h
  14. 13 12
      src/BtLeecherStateChoke.cc
  15. 0 3
      src/BtLeecherStateChoke.h
  16. 48 62
      src/BtPieceMessage.cc
  17. 13 12
      src/BtPortMessage.cc
  18. 4 2
      src/BtPostDownloadHandler.cc
  19. 10 8
      src/BtSeederStateChoke.cc
  20. 0 3
      src/BtSeederStateChoke.h
  21. 11 10
      src/BtSetup.cc
  22. 0 3
      src/BtSetup.h
  23. 9 7
      src/BtStopDownloadCommand.cc
  24. 15 12
      src/CheckIntegrityCommand.cc
  25. 7 7
      src/CheckIntegrityDispatcherCommand.cc
  26. 8 8
      src/Command.cc
  27. 0 8
      src/Command.h
  28. 14 14
      src/CookieStorage.cc
  29. 0 4
      src/CookieStorage.h
  30. 17 30
      src/DHTAbstractNodeLookupTask.h
  31. 0 2
      src/DHTAbstractTask.cc
  32. 0 9
      src/DHTAbstractTask.h
  33. 12 8
      src/DHTAutoSaveCommand.cc
  34. 16 18
      src/DHTBucket.cc
  35. 0 3
      src/DHTBucket.h
  36. 4 2
      src/DHTBucketRefreshTask.cc
  37. 8 6
      src/DHTConnectionImpl.cc
  38. 0 3
      src/DHTConnectionImpl.h
  39. 12 13
      src/DHTEntryPointNameResolveCommand.cc
  40. 14 13
      src/DHTGetPeersCommand.cc
  41. 7 4
      src/DHTInteractionCommand.cc
  42. 11 13
      src/DHTMessageDispatcherImpl.cc
  43. 0 3
      src/DHTMessageDispatcherImpl.h
  44. 12 15
      src/DHTMessageFactoryImpl.cc
  45. 0 3
      src/DHTMessageFactoryImpl.h
  46. 13 15
      src/DHTMessageReceiver.cc
  47. 0 4
      src/DHTMessageReceiver.h
  48. 13 24
      src/DHTMessageTracker.cc
  49. 0 3
      src/DHTMessageTracker.h
  50. 5 3
      src/DHTPeerAnnounceCommand.cc
  51. 12 21
      src/DHTPeerAnnounceStorage.cc
  52. 0 3
      src/DHTPeerAnnounceStorage.h
  53. 10 9
      src/DHTPeerLookupTask.cc
  54. 16 14
      src/DHTReplaceNodeTask.cc
  55. 8 19
      src/DHTRoutingTable.cc
  56. 0 3
      src/DHTRoutingTable.h
  57. 12 10
      src/DHTSetup.cc
  58. 1 3
      src/DHTSetup.h
  59. 6 7
      src/DHTTaskExecutor.cc
  60. 0 2
      src/DHTTaskExecutor.h
  61. 7 9
      src/DHTTaskFactoryImpl.cc
  62. 0 3
      src/DHTTaskFactoryImpl.h
  63. 8 14
      src/DHTTaskQueueImpl.cc
  64. 0 4
      src/DHTTaskQueueImpl.h
  65. 6 5
      src/DHTTokenUpdateCommand.cc
  66. 22 34
      src/DefaultBtAnnounce.cc
  67. 0 2
      src/DefaultBtAnnounce.h
  68. 32 48
      src/DefaultBtInteractive.cc
  69. 0 2
      src/DefaultBtInteractive.h
  70. 41 51
      src/DefaultBtMessageDispatcher.cc
  71. 0 2
      src/DefaultBtMessageDispatcher.h
  72. 0 1
      src/DefaultBtMessageReceiver.h
  73. 13 15
      src/DefaultBtProgressInfoFile.cc
  74. 0 2
      src/DefaultBtProgressInfoFile.h
  75. 18 31
      src/DefaultBtRequestFactory.cc
  76. 0 2
      src/DefaultBtRequestFactory.h
  77. 9 11
      src/DefaultExtensionMessageFactory.cc
  78. 0 4
      src/DefaultExtensionMessageFactory.h
  79. 16 25
      src/DefaultPeerStorage.cc
  80. 0 2
      src/DefaultPeerStorage.h
  81. 21 28
      src/DefaultPieceStorage.cc
  82. 0 2
      src/DefaultPieceStorage.h
  83. 3 5
      src/DiskAdaptor.cc
  84. 0 8
      src/DiskAdaptor.h
  85. 12 15
      src/DownloadCommand.cc
  86. 18 22
      src/DownloadEngine.cc
  87. 0 3
      src/DownloadEngine.h
  88. 1 4
      src/DownloadEngineFactory.cc
  89. 0 3
      src/DownloadEngineFactory.h
  90. 1 3
      src/DownloadHandler.cc
  91. 0 8
      src/DownloadHandler.h
  92. 16 22
      src/EpollEventPoll.cc
  93. 0 4
      src/EpollEventPoll.h
  94. 14 25
      src/FeedbackURISelector.cc
  95. 0 3
      src/FeedbackURISelector.h
  96. 13 11
      src/FileAllocationCommand.cc
  97. 3 4
      src/FileAllocationDispatcherCommand.cc
  98. 35 31
      src/FileEntry.cc
  99. 0 3
      src/FileEntry.h
  100. 3 1
      src/FillRequestGroupCommand.cc

+ 5 - 0
ChangeLog

@@ -1,3 +1,8 @@
+2010-11-20  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Rewritten Logger interface. Logger now writes source file name and
+	line number in log file.
+
 2010-11-18  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Made DHTBucketTreeNode non-copyable.

+ 12 - 15
src/AbstractBtMessage.cc

@@ -36,24 +36,21 @@
 #include "Peer.h"
 #include "PieceStorage.h"
 #include "BtMessageValidator.h"
-#include "LogFactory.h"
-#include "Logger.h"
 
 namespace aria2 {
 
-AbstractBtMessage::AbstractBtMessage(uint8_t id, const std::string& name):
-  BtMessage(id),
-  sendingInProgress_(false),
-  invalidate_(false),
-  uploading_(false),
-  cuid_(0),
-  name_(name),
-  dispatcher_(0),
-  messageFactory_(0),
-  requestFactory_(0),
-  peerConnection_(0),
-  metadataGetMode_(false),
-  logger_(LogFactory::getInstance())
+AbstractBtMessage::AbstractBtMessage(uint8_t id, const std::string& name)
+  : BtMessage(id),
+    sendingInProgress_(false),
+    invalidate_(false),
+    uploading_(false),
+    cuid_(0),
+    name_(name),
+    dispatcher_(0),
+    messageFactory_(0),
+    requestFactory_(0),
+    peerConnection_(0),
+    metadataGetMode_(false)
 {}
 
 AbstractBtMessage::~AbstractBtMessage() {}

+ 0 - 8
src/AbstractBtMessage.h

@@ -47,7 +47,6 @@ class BtMessageFactory;
 class BtRequestFactory;
 class PeerConnection;
 class BtMessageValidator;
-class Logger;
 
 class AbstractBtMessage : public BtMessage {
 private:
@@ -73,14 +72,7 @@ private:
   SharedHandle<BtMessageValidator> validator_;
 
   bool metadataGetMode_;
-
-  Logger* logger_;
 protected:
-  Logger* getLogger() const
-  {
-    return logger_;
-  }
-
   const SharedHandle<PieceStorage>& getPieceStorage() const
   {
     return pieceStorage_;

+ 80 - 124
src/AbstractCommand.cc

@@ -55,6 +55,7 @@
 #include "message.h"
 #include "prefs.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "ServerStat.h"
 #include "RequestGroupMan.h"
 #include "A2STR.h"
@@ -113,24 +114,20 @@ AbstractCommand::~AbstractCommand() {
 }
 
 bool AbstractCommand::execute() {
-  if(getLogger()->debug()) {
-    getLogger()->debug("CUID#%s - socket: read:%d, write:%d, hup:%d, err:%d",
-                       util::itos(getCuid()).c_str(),
-                       readEventEnabled(),
-                       writeEventEnabled(),
-                       hupEventEnabled(),
-                       errorEventEnabled());
-  }
+  A2_LOG_DEBUG(fmt("CUID#%s - socket: read:%d, write:%d, hup:%d, err:%d",
+                   util::itos(getCuid()).c_str(),
+                   readEventEnabled(),
+                   writeEventEnabled(),
+                   hupEventEnabled(),
+                   errorEventEnabled()));
   try {
     if(requestGroup_->downloadFinished() || requestGroup_->isHaltRequested()) {
       return true;
     }
     if(req_ && req_->removalRequested()) {
-      if(getLogger()->debug()) {
-        getLogger()->debug
-          ("CUID#%s - Discard original URI=%s because it is requested.",
-           util::itos(getCuid()).c_str(), req_->getUri().c_str());
-      }
+      A2_LOG_DEBUG(fmt("CUID#%s - Discard original URI=%s because it is"
+                       " requested.",
+                       util::itos(getCuid()).c_str(), req_->getUri().c_str()));
       return prepareForRetry(0);
     }
     if(getPieceStorage()) {
@@ -140,11 +137,9 @@ bool AbstractCommand::execute() {
         // This command previously has assigned segments, but it is
         // canceled. So discard current request chain.  Plus, if no
         // segment is available when http pipelining is used.
-        if(getLogger()->debug()) {
-          getLogger()->debug("CUID#%s - It seems previously assigned segments"
-                             " are canceled. Restart.",
-                             util::itos(getCuid()).c_str());
-        }
+        A2_LOG_DEBUG(fmt("CUID#%s - It seems previously assigned segments"
+                         " are canceled. Restart.",
+                         util::itos(getCuid()).c_str()));
         // Request::isPipeliningEnabled() == true means aria2
         // accessed the remote server and discovered that the server
         // supports pipelining.
@@ -159,12 +154,10 @@ bool AbstractCommand::execute() {
          !getPieceStorage()->hasMissingUnusedPiece()) {
         SharedHandle<Request> fasterRequest = fileEntry_->findFasterRequest(req_);
         if(fasterRequest) {
-          if(getLogger()->info()) {
-            getLogger()->info("CUID#%s - Use faster Request hostname=%s, port=%u",
-                              util::itos(getCuid()).c_str(),
-                              fasterRequest->getHost().c_str(),
-                              fasterRequest->getPort());
-          }
+          A2_LOG_INFO(fmt("CUID#%s - Use faster Request hostname=%s, port=%u",
+                          util::itos(getCuid()).c_str(),
+                          fasterRequest->getHost().c_str(),
+                          fasterRequest->getPort()));
           // Cancel current Request object and use faster one.
           fileEntry_->removeRequest(req_);
           Command* command =
@@ -206,16 +199,12 @@ bool AbstractCommand::execute() {
             // TODO socket could be pooled here if pipelining is
             // enabled...  Hmm, I don't think if pipelining is enabled
             // it does not go here.
-            if(getLogger()->info()) {
-              getLogger()->info(MSG_NO_SEGMENT_AVAILABLE,
-                                util::itos(getCuid()).c_str());
-            }
+            A2_LOG_INFO(fmt(MSG_NO_SEGMENT_AVAILABLE,
+                            util::itos(getCuid()).c_str()));
             // When all segments are ignored in SegmentMan, there are
             // no URIs available, so don't retry.
             if(getSegmentMan()->allSegmentsIgnored()) {
-              if(getLogger()->debug()) {
-                getLogger()->debug("All segments are ignored.");
-              }
+              A2_LOG_DEBUG("All segments are ignored.");
               return true;
             } else {
               return prepareForRetry(1);
@@ -247,21 +236,17 @@ bool AbstractCommand::execute() {
                                                           req_->getProtocol());
         ss->setError();
         // Purging IP address cache to renew IP address.
-        if(getLogger()->debug()) {
-          getLogger()->debug("CUID#%s - Marking IP address %s as bad",
-                             util::itos(getCuid()).c_str(),
-                             req_->getConnectedAddr().c_str());
-        }
+        A2_LOG_DEBUG(fmt("CUID#%s - Marking IP address %s as bad",
+                         util::itos(getCuid()).c_str(),
+                         req_->getConnectedAddr().c_str()));
         e_->markBadIPAddress(req_->getConnectedHostname(),
                              req_->getConnectedAddr(),
                              req_->getConnectedPort());
         if(e_->findCachedIPAddress
            (req_->getConnectedHostname(), req_->getConnectedPort()).empty()) {
-          if(getLogger()->debug()) {
-            getLogger()->debug("CUID#%s - All IP addresses were marked bad."
-                               " Removing Entry.",
-                               util::itos(getCuid()).c_str());
-          }
+          A2_LOG_DEBUG(fmt("CUID#%s - All IP addresses were marked bad."
+                           " Removing Entry.",
+                           util::itos(getCuid()).c_str()));
           e_->removeCachedIPAddress
             (req_->getConnectedHostname(), req_->getConnectedPort());
         }
@@ -272,15 +257,13 @@ bool AbstractCommand::execute() {
     }
   } catch(DlAbortEx& err) {
     if(!req_) {
-      if(getLogger()->debug()) {
-        getLogger()->debug(EX_EXCEPTION_CAUGHT, err);
-      }
+      A2_LOG_DEBUG_EX(EX_EXCEPTION_CAUGHT, err);
     } else {
-      getLogger()->error
-        (MSG_DOWNLOAD_ABORTED,
-         DL_ABORT_EX2(StringFormat
-                      ("URI=%s", req_->getCurrentUri().c_str()).str(),err),
-         util::itos(getCuid()).c_str(), req_->getUri().c_str());
+      A2_LOG_ERROR_EX(fmt(MSG_DOWNLOAD_ABORTED,
+                          util::itos(getCuid()).c_str(),
+                          req_->getUri().c_str()),
+                      DL_ABORT_EX2(fmt("URI=%s", req_->getCurrentUri().c_str()),
+                                   err));
       fileEntry_->addURIResult(req_->getUri(), err.getCode());
       requestGroup_->setLastUriResult(req_->getUri(), err.getCode());
       if(err.getCode() == downloadresultcode::CANNOT_RESUME) {
@@ -292,27 +275,23 @@ bool AbstractCommand::execute() {
     return true;
   } catch(DlRetryEx& err) {
     assert(req_);
-    if(getLogger()->info()) {
-      getLogger()->info
-        (MSG_RESTARTING_DOWNLOAD,
-         DL_RETRY_EX2(StringFormat
-                      ("URI=%s", req_->getCurrentUri().c_str()).str(),
-                      err),
-         util::itos(getCuid()).c_str(), req_->getUri().c_str());
-    }
+    A2_LOG_INFO_EX(fmt(MSG_RESTARTING_DOWNLOAD,
+                       util::itos(getCuid()).c_str(), req_->getUri().c_str()),
+                   DL_RETRY_EX2(fmt("URI=%s", req_->getCurrentUri().c_str()),
+                                err));
     req_->addTryCount();
     req_->resetRedirectCount();
     req_->resetUri();
     const unsigned int maxTries = getOption()->getAsInt(PREF_MAX_TRIES);
     bool isAbort = maxTries != 0 && req_->getTryCount() >= maxTries;
     if(isAbort) {
-      if(getLogger()->info()) {
-        getLogger()->info(MSG_MAX_TRY,
-                          util::itos(getCuid()).c_str(), req_->getTryCount());
-      }
-      getLogger()->error(MSG_DOWNLOAD_ABORTED, err,
-                         util::itos(getCuid()).c_str(),
-                         req_->getUri().c_str());
+      A2_LOG_INFO(fmt(MSG_MAX_TRY,
+                      util::itos(getCuid()).c_str(),
+                      req_->getTryCount()));
+      A2_LOG_ERROR_EX(fmt(MSG_DOWNLOAD_ABORTED,
+                          util::itos(getCuid()).c_str(),
+                          req_->getUri().c_str()),
+                      err);
       fileEntry_->addURIResult(req_->getUri(), err.getCode());
       requestGroup_->setLastUriResult(req_->getUri(), err.getCode());
       if(err.getCode() == downloadresultcode::CANNOT_RESUME) {
@@ -325,7 +304,7 @@ bool AbstractCommand::execute() {
       return prepareForRetry(0);
     }
   } catch(DownloadFailureException& err) {
-    getLogger()->error(EX_EXCEPTION_CAUGHT, err);
+    A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, err);
     if(req_) {
       fileEntry_->addURIResult(req_->getUri(), err.getCode());
       requestGroup_->setLastUriResult(req_->getUri(), err.getCode());
@@ -343,19 +322,15 @@ void AbstractCommand::tryReserved() {
     // and there are no URI left. Because file length is unknown, we
     // can assume that there are no in-flight request object.
     if(entry->getLength() == 0 && entry->getRemainingUris().empty()) {
-      if(getLogger()->debug()) {
-        getLogger()->debug("CUID#%s - Not trying next request."
-                           " No reserved/pooled request is remaining and"
-                           " total length is still unknown.",
-                           util::itos(getCuid()).c_str());
-      }
+      A2_LOG_DEBUG(fmt("CUID#%s - Not trying next request."
+                       " No reserved/pooled request is remaining and"
+                       " total length is still unknown.",
+                       util::itos(getCuid()).c_str()));
       return;
     }
   }
-  if(getLogger()->debug()) {
-    getLogger()->debug("CUID#%s - Trying reserved/pooled request.",
-                       util::itos(getCuid()).c_str());
-  }
+  A2_LOG_DEBUG(fmt("CUID#%s - Trying reserved/pooled request.",
+                   util::itos(getCuid()).c_str()));
   std::vector<Command*> commands;
   requestGroup_->createNextCommand(commands, e_, 1);
   e_->setNoWait(true);
@@ -368,10 +343,8 @@ bool AbstractCommand::prepareForRetry(time_t wait) {
   }
   if(req_) {
     fileEntry_->poolRequest(req_);
-    if(getLogger()->debug()) {
-      getLogger()->debug("CUID#%s - Pooling request URI=%s",
-                         util::itos(getCuid()).c_str(), req_->getUri().c_str());
-    }
+    A2_LOG_DEBUG(fmt("CUID#%s - Pooling request URI=%s",
+                     util::itos(getCuid()).c_str(), req_->getUri().c_str()));
     if(getSegmentMan()) {
       getSegmentMan()->recognizeSegmentFor(fileEntry_);
     }
@@ -394,10 +367,8 @@ void AbstractCommand::onAbort() {
     fileEntry_->removeIdenticalURI(req_->getUri());
     fileEntry_->removeRequest(req_);
   }
-  if(getLogger()->debug()) {
-    getLogger()->debug("CUID#%s - Aborting download",
-                       util::itos(getCuid()).c_str());
-  }
+  A2_LOG_DEBUG(fmt("CUID#%s - Aborting download",
+                   util::itos(getCuid()).c_str()));
   if(getPieceStorage()) {
     getSegmentMan()->cancelSegment(getCuid());
     // Don't do following process if BitTorrent is involved or files
@@ -414,14 +385,12 @@ void AbstractCommand::onAbort() {
         // Local file exists, but given servers(or at least contacted
         // ones) doesn't support resume. Let's restart download from
         // scratch.
-        getLogger()->notice("CUID#%s - Failed to resume download."
-                            " Download from scratch.",
-                            util::itos(getCuid()).c_str());
-        if(getLogger()->debug()) {
-          getLogger()->debug
-            ("CUID#%s - Gathering URIs that has CANNOT_RESUME error",
-             util::itos(getCuid()).c_str());
-        }
+        A2_LOG_NOTICE(fmt("CUID#%s - Failed to resume download."
+                          " Download from scratch.",
+                          util::itos(getCuid()).c_str()));
+        A2_LOG_DEBUG(fmt("CUID#%s - Gathering URIs that has CANNOT_RESUME"
+                         " error",
+                         util::itos(getCuid()).c_str()));
         // Set PREF_ALWAYS_RESUME to A2_V_TRUE to avoid repeating this
         // process.
         getOption()->put(PREF_ALWAYS_RESUME, A2_V_TRUE);
@@ -435,11 +404,9 @@ void AbstractCommand::onAbort() {
           uris.reserve(res.size());
           std::transform(res.begin(), res.end(), std::back_inserter(uris),
                          std::mem_fun_ref(&URIResult::getURI));
-          if(getLogger()->debug()) {
-            getLogger()->debug("CUID#%s - %lu URIs found.",
-                               util::itos(getCuid()).c_str(),
-                               static_cast<unsigned long int>(uris.size()));
-          }
+          A2_LOG_DEBUG(fmt("CUID#%s - %lu URIs found.",
+                           util::itos(getCuid()).c_str(),
+                           static_cast<unsigned long int>(uris.size())));
           fileEntry_->addUris(uris.begin(), uris.end());
           getSegmentMan()->recognizeSegmentFor(fileEntry_);
         }
@@ -640,15 +607,10 @@ SharedHandle<Request> AbstractCommand::createProxyRequest() const
   if(!proxy.empty()) {
     proxyRequest.reset(new Request());
     if(proxyRequest->setUri(proxy)) {
-      if(getLogger()->debug()) {
-        getLogger()->debug("CUID#%s - Using proxy",
-                           util::itos(getCuid()).c_str());
-      }
+      A2_LOG_DEBUG(fmt("CUID#%s - Using proxy", util::itos(getCuid()).c_str()));
     } else {
-      if(getLogger()->debug()) {
-        getLogger()->debug("CUID#%s - Failed to parse proxy string",
-                           util::itos(getCuid()).c_str());
-      }
+      A2_LOG_DEBUG(fmt("CUID#%s - Failed to parse proxy string",
+                       util::itos(getCuid()).c_str()));
       proxyRequest.reset();
     }
   }
@@ -671,10 +633,9 @@ void AbstractCommand::initAsyncNameResolver(const std::string& hostname)
     family = AF_INET;
   }
   asyncNameResolver_.reset(new AsyncNameResolver(family));
-  if(getLogger()->info()) {
-    getLogger()->info(MSG_RESOLVING_HOSTNAME,
-                      util::itos(getCuid()).c_str(), hostname.c_str());
-  }
+  A2_LOG_INFO(fmt(MSG_RESOLVING_HOSTNAME,
+                  util::itos(getCuid()).c_str(),
+                  hostname.c_str()));
   asyncNameResolver_->resolve(hostname);
   setNameResolverCheck(asyncNameResolver_);
 }
@@ -759,12 +720,10 @@ std::string AbstractCommand::resolveHostname
         }
         res.resolve(addrs, hostname);
       }
-    if(getLogger()->info()) {
-      getLogger()->info(MSG_NAME_RESOLUTION_COMPLETE,
-                        util::itos(getCuid()).c_str(),
-                        hostname.c_str(),
-                        strjoin(addrs.begin(), addrs.end(), ", ").c_str());
-    }
+    A2_LOG_INFO(fmt(MSG_NAME_RESOLUTION_COMPLETE,
+                    util::itos(getCuid()).c_str(),
+                    hostname.c_str(),
+                    strjoin(addrs.begin(), addrs.end(), ", ").c_str()));
     for(std::vector<std::string>::const_iterator i = addrs.begin(),
           eoi = addrs.end(); i != eoi; ++i) {
       e_->cacheIPAddress(hostname, *i, port);
@@ -772,11 +731,10 @@ std::string AbstractCommand::resolveHostname
     ipaddr = e_->findCachedIPAddress(hostname, port);
   } else {
     ipaddr = addrs.front();
-    if(getLogger()->info()) {
-      getLogger()->info(MSG_DNS_CACHE_HIT,
-                        util::itos(getCuid()).c_str(), hostname.c_str(),
-                        strjoin(addrs.begin(), addrs.end(), ", ").c_str());
-    }
+    A2_LOG_INFO(fmt(MSG_DNS_CACHE_HIT,
+                    util::itos(getCuid()).c_str(),
+                    hostname.c_str(),
+                    strjoin(addrs.begin(), addrs.end(), ", ").c_str()));
   }
   return ipaddr;
 }
@@ -804,11 +762,9 @@ bool AbstractCommand::checkIfConnectionEstablished
       // See also InitiateConnectionCommand::executeInternal()
       e_->markBadIPAddress(connectedHostname, connectedAddr, connectedPort);
       if(!e_->findCachedIPAddress(connectedHostname, connectedPort).empty()) {
-        if(getLogger()->info()) {
-          getLogger()->info(MSG_CONNECT_FAILED_AND_RETRY,
-                            util::itos(getCuid()).c_str(),
-                            connectedAddr.c_str(), connectedPort);
-        }
+        A2_LOG_INFO(fmt(MSG_CONNECT_FAILED_AND_RETRY,
+                        util::itos(getCuid()).c_str(),
+                        connectedAddr.c_str(), connectedPort));
         Command* command =
           InitiateConnectionCommandFactory::createInitiateConnectionCommand
           (getCuid(), req_, fileEntry_, requestGroup_, e_);

+ 6 - 8
src/AbstractDiskWriter.cc

@@ -47,8 +47,6 @@
 #include "File.h"
 #include "util.h"
 #include "message.h"
-#include "LogFactory.h"
-#include "Logger.h"
 #include "DlAbortEx.h"
 #include "a2io.h"
 #include "StringFormat.h"
@@ -56,12 +54,12 @@
 
 namespace aria2 {
 
-AbstractDiskWriter::AbstractDiskWriter(const std::string& filename):
-  filename_(filename),
-  fd_(-1),
-  readOnly_(false),
-  directIOAllowed_(false),
-  logger_(LogFactory::getInstance()) {}
+AbstractDiskWriter::AbstractDiskWriter(const std::string& filename)
+  : filename_(filename),
+    fd_(-1),
+    readOnly_(false),
+    directIOAllowed_(false)
+{}
 
 AbstractDiskWriter::~AbstractDiskWriter()
 {

+ 0 - 4
src/AbstractDiskWriter.h

@@ -40,8 +40,6 @@
 
 namespace aria2 {
 
-class Logger;
-
 class AbstractDiskWriter : public DiskWriter {
 private:
   std::string filename_;
@@ -51,8 +49,6 @@ private:
 
   bool directIOAllowed_;
 
-  Logger* logger_;
-
   ssize_t writeDataInternal(const unsigned char* data, size_t len);
   ssize_t readDataInternal(unsigned char* data, size_t len);
 

+ 10 - 11
src/ActivePeerConnectionCommand.cc

@@ -41,6 +41,7 @@
 #include "BtRuntime.h"
 #include "Peer.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "prefs.h"
 #include "Option.h"
 #include "BtConstants.h"
@@ -51,6 +52,7 @@
 #include "bittorrent_helper.h"
 #include "wallclock.h"
 #include "util.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -59,12 +61,11 @@ ActivePeerConnectionCommand::ActivePeerConnectionCommand
  RequestGroup* requestGroup,
  DownloadEngine* e,
  time_t interval)
-  :
-  Command(cuid),
-  requestGroup_(requestGroup),
-  interval_(interval),
-  e_(e),
-  numNewConnection_(5)
+  : Command(cuid),
+    requestGroup_(requestGroup),
+    interval_(interval),
+    e_(e),
+    numNewConnection_(5)
 {
   requestGroup_->increaseNumCommand();
 }
@@ -141,11 +142,9 @@ void ActivePeerConnectionCommand::connectToPeer(const SharedHandle<Peer>& peer)
   command->setPeerStorage(peerStorage_);
   command->setPieceStorage(pieceStorage_);
   e_->addCommand(command);
-  if(getLogger()->info()) {
-    getLogger()->info(MSG_CONNECTING_TO_PEER,
-                      util::itos(getCuid()).c_str(),
-                      peer->getIPAddress().c_str());
-  }
+  A2_LOG_INFO(fmt(MSG_CONNECTING_TO_PEER,
+                  util::itos(getCuid()).c_str(),
+                  peer->getIPAddress().c_str()));
 }
 
 void ActivePeerConnectionCommand::setBtRuntime

+ 8 - 12
src/AdaptiveFileAllocationIterator.cc

@@ -45,9 +45,11 @@
 namespace aria2 {
 
 AdaptiveFileAllocationIterator::AdaptiveFileAllocationIterator
-(BinaryStream* stream, off_t offset, uint64_t totalLength):
-  stream_(stream), offset_(offset), totalLength_(totalLength),
-  logger_(LogFactory::getInstance()) {}
+(BinaryStream* stream, off_t offset, uint64_t totalLength)
+ : stream_(stream),
+   offset_(offset),
+   totalLength_(totalLength)
+{}
 
 AdaptiveFileAllocationIterator::~AdaptiveFileAllocationIterator() {}
 
@@ -56,23 +58,17 @@ void AdaptiveFileAllocationIterator::allocateChunk()
   if(!allocator_) {
 #ifdef HAVE_FALLOCATE
     try {
-      if(logger_->debug()) {
-        logger_->debug("Testing file system supports fallocate.");
-      }
+      A2_LOG_DEBUG("Testing file system supports fallocate.");
       if(static_cast<uint64_t>(offset_) < totalLength_) {
         off_t len = std::min(totalLength_-offset_, static_cast<uint64_t>(4096));
         stream_->allocate(offset_, len);
         offset_ += len;
       }
-      if(logger_->debug()) {
-        logger_->debug("File system supports fallocate.");
-      }
+      A2_LOG_DEBUG("File system supports fallocate.");
       allocator_.reset
         (new FallocFileAllocationIterator(stream_, offset_, totalLength_));
     } catch(RecoverableException& e) {
-      if(logger_->debug()) {
-        logger_->debug("File system does not support fallocate.");
-      }
+      A2_LOG_DEBUG("File system does not support fallocate.");
       SharedHandle<SingleFileAllocationIterator> salloc
         (new SingleFileAllocationIterator(stream_, offset_, totalLength_));
       salloc->init();

+ 0 - 3
src/AdaptiveFileAllocationIterator.h

@@ -40,7 +40,6 @@
 namespace aria2 {
 
 class BinaryStream;
-class Logger;
 
 class AdaptiveFileAllocationIterator:public FileAllocationIterator
 {
@@ -52,8 +51,6 @@ private:
   off_t offset_;
 
   uint64_t totalLength_;
-
-  Logger* logger_;
 public:
   AdaptiveFileAllocationIterator
   (BinaryStream* stream, off_t offset, uint64_t totalLength);

+ 35 - 37
src/AdaptiveURISelector.cc

@@ -44,6 +44,7 @@
 #include "ServerStatMan.h"
 #include "ServerStat.h"
 #include "RequestGroup.h"
+#include "Logger.h"
 #include "LogFactory.h"
 #include "A2STR.h"
 #include "prefs.h"
@@ -52,6 +53,7 @@
 #include "SocketCore.h"
 #include "FileEntry.h"
 #include "uri.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -63,10 +65,9 @@ namespace aria2 {
  */
 
 AdaptiveURISelector::AdaptiveURISelector
-(const SharedHandle<ServerStatMan>& serverStatMan, RequestGroup* requestGroup):
-  serverStatMan_(serverStatMan),
-  requestGroup_(requestGroup),
-  logger_(LogFactory::getInstance())
+(const SharedHandle<ServerStatMan>& serverStatMan, RequestGroup* requestGroup)
+  : serverStatMan_(serverStatMan),
+    requestGroup_(requestGroup)
 {
   resetCounters();
 }
@@ -77,10 +78,8 @@ std::string AdaptiveURISelector::select
 (FileEntry* fileEntry,
  const std::vector<std::pair<size_t, std::string> >& usedHosts)
 {
-  if(logger_->debug()) {
-    logger_->debug("AdaptiveURISelector: called %d",
-                   requestGroup_->getNumConnection());
-  }
+  A2_LOG_DEBUG(fmt("AdaptiveURISelector: called %d",
+                   requestGroup_->getNumConnection()));
   std::deque<std::string>& uris = fileEntry->getRemainingUris();
   if (uris.empty() && requestGroup_->getNumConnection() <= 1) {
     // here we know the download will fail, trying to find previously
@@ -108,13 +107,13 @@ void AdaptiveURISelector::mayRetryWithIncreasedTimeout(FileEntry* fileEntry)
   std::transform(timeouts.begin(), timeouts.end(), std::back_inserter(uris),
                  std::mem_fun_ref(&URIResult::getURI));
 
-  if(logger_->debug()) {
+  if(A2_LOG_DEBUG_ENABLED) {
     for(std::deque<std::string>::const_iterator i = uris.begin(),
           eoi = uris.end(); i != eoi; ++i) {
-      logger_->debug("AdaptiveURISelector: will retry server with increased"
-                     " timeout (%ld s): %s",
-                     static_cast<long int>(requestGroup_->getTimeout()),
-                     (*i).c_str());
+      A2_LOG_DEBUG(fmt("AdaptiveURISelector: will retry server with increased"
+                       " timeout (%ld s): %s",
+                       static_cast<long int>(requestGroup_->getTimeout()),
+                       (*i).c_str()));
     }
   }
 }
@@ -140,10 +139,9 @@ std::string AdaptiveURISelector::selectOne(const std::deque<std::string>& uris)
     if(getNbTestedServers(uris) < 3) {
       std::string notTested = getFirstNotTestedUri(uris);
       if(notTested != A2STR::NIL) {
-        if(logger_->debug()) {
-          logger_->debug("AdaptiveURISelector: choosing the first non tested"
-                         " mirror: %s", notTested.c_str());
-        }
+        A2_LOG_DEBUG(fmt("AdaptiveURISelector: choosing the first non tested"
+                         " mirror: %s",
+                         notTested.c_str()));
         --nbServerToEvaluate_;
         return notTested;
       }
@@ -154,21 +152,17 @@ std::string AdaptiveURISelector::selectOne(const std::deque<std::string>& uris)
       std::string notTested = getFirstNotTestedUri(uris);
       if(notTested != A2STR::NIL) {
         /* Here we return the first untested mirror */
-        if(logger_->debug()) {
-          logger_->debug("AdaptiveURISelector: choosing non tested mirror %s"
+        A2_LOG_DEBUG(fmt("AdaptiveURISelector: choosing non tested mirror %s"
                          " for connection #%d",
-                         notTested.c_str(), nbConnections_);
-        }
+                         notTested.c_str(), nbConnections_));
         return notTested;
       } else {
         /* Here we return a mirror which need to be tested again */
         std::string toReTest = getFirstToTestUri(uris);
         if(toReTest != A2STR::NIL) {
-          if(logger_->debug()) {
-            logger_->debug("AdaptiveURISelector: choosing mirror %s which has"
+          A2_LOG_DEBUG(fmt("AdaptiveURISelector: choosing mirror %s which has"
                            " not been tested recently for connection #%d",
-                           toReTest.c_str(), nbConnections_);
-          }
+                           toReTest.c_str(), nbConnections_));
           return toReTest;
         } else {
           return getBestMirror(uris);
@@ -191,19 +185,18 @@ std::string AdaptiveURISelector::getBestMirror
   
   if (bests.size() < 2) {
     std::string uri = getMaxDownloadSpeedUri(uris);
-    if(logger_->debug()) {
-      logger_->debug("AdaptiveURISelector: choosing the best mirror :"
+    A2_LOG_DEBUG(fmt("AdaptiveURISelector: choosing the best mirror :"
                      " %.2fKB/s %s (other mirrors are at least 25%% slower)",
-                     (float) max/1024, uri.c_str());
-    }
+                     (float) max/1024,
+                     uri.c_str()));
     return uri;
   } else {
     std::string uri = selectRandomUri(bests);
-    if(logger_->debug()) {
-      logger_->debug("AdaptiveURISelector: choosing randomly one of the best"
+    A2_LOG_DEBUG(fmt("AdaptiveURISelector: choosing randomly one of the best"
                      " mirrors (range [%.2fKB/s, %.2fKB/s]): %s",
-                     (float) min/1024, (float) max/1024, uri.c_str());
-    }
+                     (float) min/1024,
+                     (float) max/1024,
+                     uri.c_str()));
     return uri;
   }
 }
@@ -230,12 +223,17 @@ void AdaptiveURISelector::adjustLowestSpeedLimit
     unsigned int low_lowest = 4 * 1024;
     unsigned int max = getMaxDownloadSpeed(uris);
     if (max > 0 && lowest > max / 4) {
-      logger_->notice("Lowering lowest-speed-limit since known max speed is too"
-                      " near (new:%d was:%d max:%d)", max / 4, lowest, max);
+      A2_LOG_NOTICE(fmt("Lowering lowest-speed-limit since known max speed is"
+                        " too near (new:%d was:%d max:%d)",
+                        max / 4,
+                        lowest,
+                        max));
       command->setLowestDownloadSpeedLimit(max / 4);
     } else if (max == 0 && lowest > low_lowest) {
-      logger_->notice("Lowering lowest-speed-limit since we have no clue about"
-                      " available speed (now:%d was:%d)", low_lowest, lowest);
+      A2_LOG_NOTICE(fmt("Lowering lowest-speed-limit since we have no clue"
+                        " about available speed (now:%d was:%d)",
+                        low_lowest,
+                        lowest));
       command->setLowestDownloadSpeedLimit(low_lowest);
     }
   }

+ 0 - 3
src/AdaptiveURISelector.h

@@ -43,7 +43,6 @@ namespace aria2 {
 class ServerStatMan;
 class RequestGroup;
 class ServerStat;
-class Logger;
 
 class AdaptiveURISelector:public URISelector {
 private:
@@ -55,8 +54,6 @@ private:
 
   static const time_t MAX_TIMEOUT = 60;
 
-  Logger* logger_;
-
   void mayRetryWithIncreasedTimeout(FileEntry* fileEntry);
 
   std::string selectOne(const std::deque<std::string>& uris);

+ 14 - 18
src/BtDependency.cc

@@ -48,15 +48,17 @@
 #include "bittorrent_helper.h"
 #include "DlAbortEx.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "FileEntry.h"
 
 namespace aria2 {
 
-BtDependency::BtDependency(RequestGroup* dependant,
-                           const SharedHandle<RequestGroup>& dependee):
-  dependant_(dependant),
-  dependee_(dependee),
-  logger_(LogFactory::getInstance()) {}
+BtDependency::BtDependency
+(RequestGroup* dependant,
+ const SharedHandle<RequestGroup>& dependee)
+  : dependant_(dependant),
+    dependee_(dependee)
+{}
 
 BtDependency::~BtDependency() {}
 
@@ -136,27 +138,21 @@ bool BtDependency::resolve()
         }
       }
     } catch(RecoverableException& e) {
-      logger_->error(EX_EXCEPTION_CAUGHT, e);
-      if(logger_->info()) {
-        logger_->info("BtDependency for GID#%s failed. Go without Bt.",
-                      util::itos(dependant_->getGID()).c_str());
-      }
+      A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e);
+      A2_LOG_INFO(fmt("BtDependency for GID#%s failed. Go without Bt.",
+                      util::itos(dependant_->getGID()).c_str()));
       return true;
     }
-    if(logger_->info()) {
-      logger_->info("Dependency resolved for GID#%s",
-                    util::itos(dependant_->getGID()).c_str());
-    }
+    A2_LOG_INFO(fmt("Dependency resolved for GID#%s",
+                    util::itos(dependant_->getGID()).c_str()));
     dependant_->setDownloadContext(context);
     return true;
   } else if(dependee_->getNumCommand() == 0) {
     // dependee_'s download failed.
     // cut reference here
     dependee_.reset();
-    if(logger_->info()) {
-      logger_->info("BtDependency for GID#%s failed. Go without Bt.",
-                    util::itos(dependant_->getGID()).c_str());
-    }
+    A2_LOG_INFO(fmt("BtDependency for GID#%s failed. Go without Bt.",
+                    util::itos(dependant_->getGID()).c_str()));
     return true;
   } else {
     return false;

+ 0 - 2
src/BtDependency.h

@@ -41,14 +41,12 @@ namespace aria2 {
 
 class RequestGroup;
 class Option;
-class Logger;
 
 class BtDependency : public Dependency
 {
 private:
   RequestGroup* dependant_;
   SharedHandle<RequestGroup> dependee_;
-  Logger* logger_;
 public:
   BtDependency(RequestGroup* dependant,
                const SharedHandle<RequestGroup>& dependee);

+ 13 - 12
src/BtLeecherStateChoke.cc

@@ -41,13 +41,14 @@
 #include "LogFactory.h"
 #include "SimpleRandomizer.h"
 #include "wallclock.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-BtLeecherStateChoke::BtLeecherStateChoke():
-  round_(0),
-  lastRound_(0),
-  logger_(LogFactory::getInstance()) {}
+BtLeecherStateChoke::BtLeecherStateChoke()
+  : round_(0),
+    lastRound_(0)
+{}
 
 BtLeecherStateChoke::~BtLeecherStateChoke() {}
 
@@ -142,8 +143,8 @@ void BtLeecherStateChoke::plannedOptimisticUnchoke
     std::random_shuffle(peerEntries.begin(), i,
                         *(SimpleRandomizer::getInstance().get()));
     (*peerEntries.begin()).enableOptUnchoking();
-    logger_->info
-      ("POU: %s", (*peerEntries.begin()).getPeer()->getIPAddress().c_str());
+    A2_LOG_INFO(fmt("POU: %s",
+                    (*peerEntries.begin()).getPeer()->getIPAddress().c_str()));
   }
 }
 
@@ -162,9 +163,9 @@ void BtLeecherStateChoke::regularUnchoke(std::vector<PeerEntry>& peerEntries)
   std::vector<PeerEntry>::iterator peerIter = peerEntries.begin();
   for(;peerIter != rest && count; ++peerIter, --count) {
     (*peerIter).disableChokingRequired();
-    logger_->info("RU: %s, dlspd=%u",
-                  (*peerIter).getPeer()->getIPAddress().c_str(),
-                  (*peerIter).getDownloadSpeed());
+    A2_LOG_INFO(fmt("RU: %s, dlspd=%u",
+                    (*peerIter).getPeer()->getIPAddress().c_str(),
+                    (*peerIter).getDownloadSpeed()));
     if((*peerIter).getPeer()->optUnchoking()) {
       fastOptUnchoker = true;
       (*peerIter).disableOptUnchoking();
@@ -177,11 +178,11 @@ void BtLeecherStateChoke::regularUnchoke(std::vector<PeerEntry>& peerEntries)
           eoi = peerEntries.end(); i != eoi; ++i) {
       if((*i).getPeer()->peerInterested()) {
         (*i).enableOptUnchoking();
-        logger_->info("OU: %s", (*i).getPeer()->getIPAddress().c_str());
+        A2_LOG_INFO(fmt("OU: %s", (*i).getPeer()->getIPAddress().c_str()));
         break;
       } else {
         (*i).disableChokingRequired();
-        logger_->info("OU: %s", (*i).getPeer()->getIPAddress().c_str());
+        A2_LOG_INFO(fmt("OU: %s", (*i).getPeer()->getIPAddress().c_str()));
       }
     }
   }
@@ -191,7 +192,7 @@ void
 BtLeecherStateChoke::executeChoke
 (const std::vector<SharedHandle<Peer> >& peerSet)
 {
-  logger_->info("Leecher state, %d choke round started", round_);
+  A2_LOG_INFO(fmt("Leecher state, %d choke round started", round_));
   lastRound_ = global::wallclock;
 
   std::vector<PeerEntry> peerEntries;

+ 0 - 3
src/BtLeecherStateChoke.h

@@ -45,7 +45,6 @@
 namespace aria2 {
 
 class Peer;
-class Logger;
 
 class BtLeecherStateChoke {
 private:
@@ -53,8 +52,6 @@ private:
 
   Timer lastRound_;
 
-  Logger* logger_;
-
   class PeerEntry {
   private:
     SharedHandle<Peer> peer_;

+ 48 - 62
src/BtPieceMessage.cc

@@ -45,6 +45,7 @@
 #include "MessageDigestHelper.h"
 #include "DiskAdaptor.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "Peer.h"
 #include "Piece.h"
 #include "PieceStorage.h"
@@ -53,6 +54,7 @@
 #include "BtRequestFactory.h"
 #include "PeerConnection.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "DownloadContext.h"
 
 namespace aria2 {
@@ -60,13 +62,13 @@ namespace aria2 {
 const std::string BtPieceMessage::NAME("piece");
 
 BtPieceMessage::BtPieceMessage
-(size_t index, uint32_t begin, size_t blockLength):
-  AbstractBtMessage(ID, NAME),
-  index_(index),
-  begin_(begin),
-  blockLength_(blockLength),
-  block_(0),
-  rawData_(0)
+(size_t index, uint32_t begin, size_t blockLength)
+  : AbstractBtMessage(ID, NAME),
+    index_(index),
+    begin_(begin),
+    blockLength_(blockLength),
+    block_(0),
+    rawData_(0)
 {
   setUploading(true);
 }
@@ -107,22 +109,19 @@ void BtPieceMessage::doReceivedAction()
     getPeer()->snubbing(false);
     SharedHandle<Piece> piece = getPieceStorage()->getPiece(index_);
     off_t offset = (off_t)index_*downloadContext_->getPieceLength()+begin_;
-    if(getLogger()->debug()) {
-      getLogger()->debug(MSG_PIECE_RECEIVED,
-                         util::itos(getCuid()).c_str(),
-                         static_cast<unsigned long>(index_),
-                         begin_, blockLength_,
-                         static_cast<long long int>(offset),
-                         static_cast<unsigned long>(slot.getBlockIndex()));
-    }
+    A2_LOG_DEBUG(fmt(MSG_PIECE_RECEIVED,
+                     util::itos(getCuid()).c_str(),
+                     static_cast<unsigned long>(index_),
+                     begin_,
+                     blockLength_,
+                     static_cast<long long int>(offset),
+                     static_cast<unsigned long>(slot.getBlockIndex())));
     getPieceStorage()->getDiskAdaptor()->writeData
       (block_, blockLength_, offset);
     piece->completeBlock(slot.getBlockIndex());
-    if(getLogger()->debug()) {
-      getLogger()->debug(MSG_PIECE_BITFIELD, util::itos(getCuid()).c_str(),
-                         util::toHex(piece->getBitfield(),
-                                     piece->getBitfieldLength()).c_str());
-    }
+    A2_LOG_DEBUG(fmt(MSG_PIECE_BITFIELD, util::itos(getCuid()).c_str(),
+                     util::toHex(piece->getBitfield(),
+                                 piece->getBitfieldLength()).c_str()));
     piece->updateHash(begin_, block_, blockLength_);
     getBtMessageDispatcher()->removeOutstandingRequest(slot);
     if(piece->pieceComplete()) {
@@ -134,11 +133,10 @@ void BtPieceMessage::doReceivedAction()
       }
     }
   } else {
-    if(getLogger()->debug()) {
-      getLogger()->debug("CUID#%s - RequestSlot not found, index=%lu, begin=%u",
-                         util::itos(getCuid()).c_str(),
-                         static_cast<unsigned long>(index_), begin_);
-    }
+    A2_LOG_DEBUG(fmt("CUID#%s - RequestSlot not found, index=%lu, begin=%u",
+                     util::itos(getCuid()).c_str(),
+                     static_cast<unsigned long>(index_),
+                     begin_));
   }
 }
 
@@ -173,19 +171,15 @@ void BtPieceMessage::send()
   }
   size_t writtenLength;
   if(!isSendingInProgress()) {
-    if(getLogger()->info()) {
-      getLogger()->info(MSG_SEND_PEER_MESSAGE,
-                        util::itos(getCuid()).c_str(),
-                        getPeer()->getIPAddress().c_str(),
-                        getPeer()->getPort(),
-                        toString().c_str());
-    }
+    A2_LOG_INFO(fmt(MSG_SEND_PEER_MESSAGE,
+                    util::itos(getCuid()).c_str(),
+                    getPeer()->getIPAddress().c_str(),
+                    getPeer()->getPort(),
+                    toString().c_str()));
     unsigned char* msgHdr = createMessageHeader();
     size_t msgHdrLen = getMessageHeaderLength();
-    if(getLogger()->debug()) {
-      getLogger()->debug("msglength = %lu bytes",
-                         static_cast<unsigned long>(msgHdrLen+blockLength_));
-    }
+    A2_LOG_DEBUG(fmt("msglength = %lu bytes",
+                     static_cast<unsigned long>(msgHdrLen+blockLength_)));
     getPeerConnection()->pushBytes(msgHdr, msgHdrLen);
     getPeerConnection()->sendPendingData();
     off_t pieceDataOffset =
@@ -226,10 +220,8 @@ std::string BtPieceMessage::toString() const
 bool BtPieceMessage::checkPieceHash(const SharedHandle<Piece>& piece)
 {
   if(!getPieceStorage()->isEndGame() && piece->isHashCalculated()) {
-    if(getLogger()->debug()) {
-      getLogger()->debug("Hash is available!! index=%lu",
-                         static_cast<unsigned long>(piece->getIndex()));
-    }
+    A2_LOG_DEBUG(fmt("Hash is available!! index=%lu",
+                     static_cast<unsigned long>(piece->getIndex())));
     return
       piece->getHashString()==downloadContext_->getPieceHash(piece->getIndex());
   } else {
@@ -243,22 +235,18 @@ bool BtPieceMessage::checkPieceHash(const SharedHandle<Piece>& piece)
 
 void BtPieceMessage::onNewPiece(const SharedHandle<Piece>& piece)
 {
-  if(getLogger()->info()) {
-    getLogger()->info(MSG_GOT_NEW_PIECE,
-                      util::itos(getCuid()).c_str(),
-                      static_cast<unsigned long>(piece->getIndex()));
-  }
+  A2_LOG_INFO(fmt(MSG_GOT_NEW_PIECE,
+                  util::itos(getCuid()).c_str(),
+                  static_cast<unsigned long>(piece->getIndex())));
   getPieceStorage()->completePiece(piece);
   getPieceStorage()->advertisePiece(getCuid(), piece->getIndex());
 }
 
 void BtPieceMessage::onWrongPiece(const SharedHandle<Piece>& piece)
 {
-  if(getLogger()->info()) {
-    getLogger()->info(MSG_GOT_WRONG_PIECE,
-                      util::itos(getCuid()).c_str(),
-                      static_cast<unsigned long>(piece->getIndex()));
-  }
+  A2_LOG_INFO(fmt(MSG_GOT_WRONG_PIECE,
+                  util::itos(getCuid()).c_str(),
+                  static_cast<unsigned long>(piece->getIndex())));
   erasePieceOnDisk(piece);
   piece->clearAllBlock();
   piece->destroyHashContext();
@@ -286,12 +274,11 @@ void BtPieceMessage::onChokingEvent(const BtChokingEvent& event)
   if(!isInvalidate() &&
      !isSendingInProgress() &&
      !getPeer()->isInAmAllowedIndexSet(index_)) {
-    if(getLogger()->debug()) {
-      getLogger()->debug(MSG_REJECT_PIECE_CHOKED,
-                         util::itos(getCuid()).c_str(),
-                         static_cast<unsigned long>(index_),
-                         begin_, blockLength_);
-    }
+    A2_LOG_DEBUG(fmt(MSG_REJECT_PIECE_CHOKED,
+                     util::itos(getCuid()).c_str(),
+                     static_cast<unsigned long>(index_),
+                     begin_,
+                     blockLength_));
     if(getPeer()->isFastExtensionEnabled()) {
       BtMessageHandle rej =
         getBtMessageFactory()->createRejectMessage
@@ -310,12 +297,11 @@ void BtPieceMessage::onCancelSendingPieceEvent
      index_ == event.getIndex() &&
      begin_ == event.getBegin() &&
      blockLength_ == event.getLength()) {
-    if(getLogger()->debug()) {
-      getLogger()->debug(MSG_REJECT_PIECE_CANCEL,
-                         util::itos(getCuid()).c_str(),
-                         static_cast<unsigned long>(index_),
-                         begin_, blockLength_);
-    }
+    A2_LOG_DEBUG(fmt(MSG_REJECT_PIECE_CANCEL,
+                     util::itos(getCuid()).c_str(),
+                     static_cast<unsigned long>(index_),
+                     begin_,
+                     blockLength_));
     if(getPeer()->isFastExtensionEnabled()) {
       BtMessageHandle rej =
         getBtMessageFactory()->createRejectMessage

+ 13 - 12
src/BtPortMessage.cc

@@ -38,6 +38,7 @@
 #include "util.h"
 #include "message.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "Peer.h"
 #include "DHTNode.h"
 #include "DHTRoutingTable.h"
@@ -45,19 +46,21 @@
 #include "DHTTaskFactory.h"
 #include "DHTTask.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "a2functional.h"
 
 namespace aria2 {
 
 const std::string BtPortMessage::NAME("port");
 
-BtPortMessage::BtPortMessage(uint16_t port):
-  SimpleBtMessage(ID, NAME), port_(port),
-  localNode_(0),
-  routingTable_(0),
-  taskQueue_(0),
-  taskFactory_(0)
- {}
+BtPortMessage::BtPortMessage(uint16_t port)
+  : SimpleBtMessage(ID, NAME),
+    port_(port),
+    localNode_(0),
+    routingTable_(0),
+    taskQueue_(0),
+    taskFactory_(0)
+{}
 
 SharedHandle<BtPortMessage> BtPortMessage::create
 (const unsigned char* data, size_t dataLength)
@@ -73,9 +76,7 @@ void BtPortMessage::doReceivedAction()
 {
   if(taskFactory_ && taskQueue_) {
     if(port_ == 0) {
-      if(getLogger()->debug()) {
-        getLogger()->debug("Ignored port 0.");
-      }
+      A2_LOG_DEBUG("Ignored port 0.");
       return;
     }
     // node id is random at this point. When ping reply received, new DHTNode
@@ -89,12 +90,12 @@ void BtPortMessage::doReceivedAction()
     }
     if(routingTable_->countBucket() == 1) {
       // initiate bootstrap
-      getLogger()->info("Dispatch node_lookup since too few buckets.");
+      A2_LOG_INFO("Dispatch node_lookup since too few buckets.");
       taskQueue_->addImmediateTask
         (taskFactory_->createNodeLookupTask(localNode_->getID()));
     }
   } else {
-    getLogger()->info
+    A2_LOG_INFO
       ("DHT port message received while localhost didn't declare support it.");
   }
 }

+ 4 - 2
src/BtPostDownloadHandler.cc

@@ -37,6 +37,7 @@
 #include "RequestGroup.h"
 #include "Option.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "DownloadHandlerConstants.h"
 #include "File.h"
 #include "PieceStorage.h"
@@ -46,6 +47,7 @@
 #include "Exception.h"
 #include "DownloadContext.h"
 #include "download_helper.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -66,8 +68,8 @@ void BtPostDownloadHandler::getNextRequestGroups
 (std::vector<SharedHandle<RequestGroup> >& groups,
  RequestGroup* requestGroup)
 {
-  getLogger()->info("Generating RequestGroups for Torrent file %s",
-                    requestGroup->getFirstFilePath().c_str());
+  A2_LOG_INFO(fmt("Generating RequestGroups for Torrent file %s",
+                  requestGroup->getFirstFilePath().c_str()));
   std::string content;
   try {
     requestGroup->getPieceStorage()->getDiskAdaptor()->openExistingFile();

+ 10 - 8
src/BtSeederStateChoke.cc

@@ -41,13 +41,14 @@
 #include "LogFactory.h"
 #include "SimpleRandomizer.h"
 #include "wallclock.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-BtSeederStateChoke::BtSeederStateChoke():
-  round_(0),
-  lastRound_(0),
-  logger_(LogFactory::getInstance()) {}
+BtSeederStateChoke::BtSeederStateChoke()
+  : round_(0),
+    lastRound_(0)
+{}
 
 BtSeederStateChoke::~BtSeederStateChoke() {}
 
@@ -123,8 +124,9 @@ void BtSeederStateChoke::unchoke
   for(std::vector<PeerEntry>::iterator eoi = peers.end();
       r != eoi && count; ++r, --count) {
     (*r).getPeer()->chokingRequired(false);
-    logger_->info("RU: %s, ulspd=%u", (*r).getPeer()->getIPAddress().c_str(),
-                  (*r).getUploadSpeed());
+    A2_LOG_INFO(fmt("RU: %s, ulspd=%u",
+                    (*r).getPeer()->getIPAddress().c_str(),
+                    (*r).getUploadSpeed()));
   }
 
   if(round_ < 2) {
@@ -134,7 +136,7 @@ void BtSeederStateChoke::unchoke
       std::random_shuffle(r, peers.end(),
                           *(SimpleRandomizer::getInstance().get()));
       (*r).getPeer()->optUnchoking(true);
-      logger_->info("POU: %s", (*r).getPeer()->getIPAddress().c_str());
+      A2_LOG_INFO(fmt("POU: %s", (*r).getPeer()->getIPAddress().c_str()));
     }
   }
 }
@@ -153,7 +155,7 @@ void
 BtSeederStateChoke::executeChoke
 (const std::vector<SharedHandle<Peer> >& peerSet)
 {
-  logger_->info("Seeder state, %d choke round started", round_);
+  A2_LOG_INFO(fmt("Seeder state, %d choke round started", round_));
   lastRound_ = global::wallclock;
 
   std::vector<PeerEntry> peerEntries;

+ 0 - 3
src/BtSeederStateChoke.h

@@ -45,7 +45,6 @@
 namespace aria2 {
 
 class Peer;
-class Logger;
 
 class BtSeederStateChoke {
 private:
@@ -53,8 +52,6 @@ private:
 
   Timer lastRound_;
 
-  Logger* logger_;
-
   class PeerEntry {
   private:
     SharedHandle<Peer> peer_;

+ 11 - 10
src/BtSetup.cc

@@ -83,10 +83,11 @@
 #include "DownloadContext.h"
 #include "PieceStorage.h"
 #include "PeerStorage.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-BtSetup::BtSetup():logger_(LogFactory::getInstance()) {}
+BtSetup::BtSetup() {}
 
 void BtSetup::setup(std::vector<Command*>& commands,
                     RequestGroup* requestGroup,
@@ -221,7 +222,7 @@ void BtSetup::setup(std::vector<Command*>& commands,
   if(option->getAsBool(PREF_BT_ENABLE_LPD) &&
      (metadataGetMode || !torrentAttrs->privateTorrent)) {
     if(LpdReceiveMessageCommand::getNumInstance() == 0) {
-      logger_->info("Initializing LpdMessageReceiver.");
+      A2_LOG_INFO("Initializing LpdMessageReceiver.");
       SharedHandle<LpdMessageReceiver> receiver
         (new LpdMessageReceiver(LPD_MULTICAST_ADDR, LPD_MULTICAST_PORT));
       bool initialized = false;
@@ -245,15 +246,15 @@ void BtSetup::setup(std::vector<Command*>& commands,
         }
       }
       if(initialized) {
-        logger_->info("LpdMessageReceiver initialized. multicastAddr=%s:%u,"
-                      " localAddr=%s",
-                      LPD_MULTICAST_ADDR, LPD_MULTICAST_PORT,
-                      receiver->getLocalAddress().c_str());
+        A2_LOG_INFO(fmt("LpdMessageReceiver initialized. multicastAddr=%s:%u,"
+                        " localAddr=%s",
+                        LPD_MULTICAST_ADDR, LPD_MULTICAST_PORT,
+                        receiver->getLocalAddress().c_str()));
         LpdReceiveMessageCommand* cmd =
           LpdReceiveMessageCommand::getInstance(e, receiver);
         e->addCommand(cmd);
       } else {
-        logger_->info("LpdMessageReceiver not initialized.");
+        A2_LOG_INFO("LpdMessageReceiver not initialized.");
       }
     }
     if(LpdReceiveMessageCommand::getNumInstance()) {
@@ -261,20 +262,20 @@ void BtSetup::setup(std::vector<Command*>& commands,
         bittorrent::getInfoHash(requestGroup->getDownloadContext());
       SharedHandle<LpdMessageReceiver> receiver =
         LpdReceiveMessageCommand::getInstance()->getLpdMessageReceiver();
-      logger_->info("Initializing LpdMessageDispatcher.");      
+      A2_LOG_INFO("Initializing LpdMessageDispatcher.");      
       SharedHandle<LpdMessageDispatcher> dispatcher
         (new LpdMessageDispatcher
          (std::string(&infoHash[0], &infoHash[INFO_HASH_LENGTH]),
           btRuntime->getListenPort(),
           LPD_MULTICAST_ADDR, LPD_MULTICAST_PORT));
       if(dispatcher->init(receiver->getLocalAddress(), /*ttl*/1, /*loop*/0)) {
-        logger_->info("LpdMessageDispatcher initialized.");      
+        A2_LOG_INFO("LpdMessageDispatcher initialized.");      
         LpdDispatchMessageCommand* cmd =
           new LpdDispatchMessageCommand(e->newCUID(), dispatcher, e);
         cmd->setBtRuntime(btRuntime);
         e->addCommand(cmd);
       } else {
-        logger_->info("LpdMessageDispatcher not initialized.");
+        A2_LOG_INFO("LpdMessageDispatcher not initialized.");
       }
     }
   }

+ 0 - 3
src/BtSetup.h

@@ -40,15 +40,12 @@
 
 namespace aria2 {
 
-class Logger;
 class RequestGroup;
 class DownloadEngine;
 class Option;
 class Command;
 
 class BtSetup {
-private:
-  Logger* logger_;
 public:
   BtSetup();
 

+ 9 - 7
src/BtStopDownloadCommand.cc

@@ -37,8 +37,10 @@
 #include "RequestGroup.h"
 #include "BtRuntime.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "wallclock.h"
 #include "util.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -46,10 +48,10 @@ BtStopDownloadCommand::BtStopDownloadCommand
 (cuid_t cuid,
  RequestGroup* requestGroup,
  DownloadEngine* e,
- time_t timeout):
-  TimeBasedCommand(cuid, e, 1),
-  requestGroup_(requestGroup),
-  timeout_(timeout)
+ time_t timeout)
+  : TimeBasedCommand(cuid, e, 1),
+    requestGroup_(requestGroup),
+    timeout_(timeout)
 {}
 
 void BtStopDownloadCommand::preProcess()
@@ -58,9 +60,9 @@ void BtStopDownloadCommand::preProcess()
     enableExit();
   }
   if(checkPoint_.difference(global::wallclock) >= timeout_) {
-    getLogger()->notice("GID#%s Stop downloading torrent due to"
-                        " --bt-stop-timeout option.",
-                        util::itos(requestGroup_->getGID()).c_str());
+    A2_LOG_NOTICE(fmt("GID#%s Stop downloading torrent due to"
+                      " --bt-stop-timeout option.",
+                      util::itos(requestGroup_->getGID()).c_str()));
     requestGroup_->setForceHaltRequested(true);
     enableExit();
   }

+ 15 - 12
src/CheckIntegrityCommand.cc

@@ -37,12 +37,14 @@
 #include "DownloadEngine.h"
 #include "RequestGroup.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "message.h"
 #include "prefs.h"
 #include "DownloadContext.h"
 #include "a2functional.h"
 #include "RecoverableException.h"
 #include "util.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -69,18 +71,18 @@ bool CheckIntegrityCommand::executeInternal()
     // needed.
     getRequestGroup()->enableSaveControlFile();
     if(getRequestGroup()->downloadFinished()) {
-      getLogger()->notice
-        (MSG_VERIFICATION_SUCCESSFUL,
-         getRequestGroup()->getDownloadContext()->getBasePath().c_str());
+      A2_LOG_NOTICE
+        (fmt(MSG_VERIFICATION_SUCCESSFUL,
+             getRequestGroup()->getDownloadContext()->getBasePath().c_str()));
       std::vector<Command*>* commands = new std::vector<Command*>();
       auto_delete_container<std::vector<Command*> > commandsDel(commands);
       entry_->onDownloadFinished(*commands, getDownloadEngine());
       getDownloadEngine()->addCommand(*commands);
       commands->clear();
     } else {
-      getLogger()->error
-        (MSG_VERIFICATION_FAILED,
-         getRequestGroup()->getDownloadContext()->getBasePath().c_str());
+      A2_LOG_ERROR
+        (fmt(MSG_VERIFICATION_FAILED,
+             getRequestGroup()->getDownloadContext()->getBasePath().c_str()));
       std::vector<Command*>* commands = new std::vector<Command*>();
       auto_delete_container<std::vector<Command*> > commandsDel(commands);
       entry_->onDownloadIncomplete(*commands, getDownloadEngine());
@@ -98,12 +100,13 @@ bool CheckIntegrityCommand::executeInternal()
 bool CheckIntegrityCommand::handleException(Exception& e)
 {
   getDownloadEngine()->getCheckIntegrityMan()->dropPickedEntry();
-  getLogger()->error(MSG_FILE_VALIDATION_FAILURE, e,
-                     util::itos(getCuid()).c_str());
-  getLogger()->error
-    (MSG_DOWNLOAD_NOT_COMPLETE,
-     util::itos(getCuid()).c_str(),
-     getRequestGroup()->getDownloadContext()->getBasePath().c_str());
+  A2_LOG_ERROR_EX(fmt(MSG_FILE_VALIDATION_FAILURE,
+                   util::itos(getCuid()).c_str()),
+                  e);
+  A2_LOG_ERROR
+    (fmt(MSG_DOWNLOAD_NOT_COMPLETE,
+         util::itos(getCuid()).c_str(),
+         getRequestGroup()->getDownloadContext()->getBasePath().c_str()));
   return true;
 }
 

+ 7 - 7
src/CheckIntegrityDispatcherCommand.cc

@@ -37,15 +37,17 @@
 #include "CheckIntegrityCommand.h"
 #include "message.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "util.h"
+#include "fmt.h"
 
 namespace aria2 {
 
 CheckIntegrityDispatcherCommand::CheckIntegrityDispatcherCommand
 (cuid_t cuid,
  const SharedHandle<CheckIntegrityMan>& fileAllocMan,
- DownloadEngine* e):SequentialDispatcherCommand<CheckIntegrityEntry>
-                    (cuid, fileAllocMan, e)
+ DownloadEngine* e)
+  : SequentialDispatcherCommand<CheckIntegrityEntry>(cuid, fileAllocMan, e)
 {
   setStatusRealtime();
 }
@@ -54,11 +56,9 @@ Command* CheckIntegrityDispatcherCommand::createCommand
 (const SharedHandle<CheckIntegrityEntry>& entry)
 {
   cuid_t newCUID = getDownloadEngine()->newCUID();
-  if(getLogger()->info()) {
-    getLogger()->info("CUID#%s - Dispatching CheckIntegrityCommand CUID#%s.",
-                      util::itos(getCuid()).c_str(),
-                      util::itos(newCUID).c_str());
-  }
+  A2_LOG_INFO(fmt("CUID#%s - Dispatching CheckIntegrityCommand CUID#%s.",
+                  util::itos(getCuid()).c_str(),
+                  util::itos(newCUID).c_str()));
   return new CheckIntegrityCommand
     (newCUID, entry->getRequestGroup(), getDownloadEngine(), entry);
 }

+ 8 - 8
src/Command.cc

@@ -34,17 +34,17 @@
 /* copyright --> */
 #include "Command.h"
 #include "LogFactory.h"
-#include "Logger.h"
 
 namespace aria2 {
 
-Command::Command(cuid_t cuid):status_(STATUS_INACTIVE),
-                              cuid_(cuid),
-                              logger_(LogFactory::getInstance()),
-                              readEvent_(false),
-                              writeEvent_(false),
-                              errorEvent_(false),
-                              hupEvent_(false) {}
+Command::Command(cuid_t cuid)
+  : status_(STATUS_INACTIVE),
+    cuid_(cuid),
+    readEvent_(false),
+    writeEvent_(false),
+    errorEvent_(false),
+    hupEvent_(false)
+{}
 
 void Command::transitStatus()
 {

+ 0 - 8
src/Command.h

@@ -39,8 +39,6 @@
 
 namespace aria2 {
 
-class Logger;
-
 typedef int64_t cuid_t;
 
 class Command {
@@ -56,18 +54,12 @@ private:
   STATUS status_;
 
   cuid_t cuid_;
-  Logger* logger_;
 
   bool readEvent_;
   bool writeEvent_;
   bool errorEvent_;
   bool hupEvent_;
 protected:
-  Logger* getLogger() const
-  {
-    return logger_;
-  }
-
   bool readEventEnabled() const
   {
     return readEvent_;

+ 14 - 14
src/CookieStorage.cc

@@ -43,6 +43,7 @@
 #include "Logger.h"
 #include "DlAbortEx.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "NsCookieParser.h"
 #include "File.h"
 #include "a2functional.h"
@@ -139,7 +140,7 @@ bool CookieStorage::DomainEntry::operator<(const DomainEntry& de) const
   return key_ < de.key_;
 }
 
-CookieStorage::CookieStorage():logger_(LogFactory::getInstance()) {}
+CookieStorage::CookieStorage() {}
 
 CookieStorage::~CookieStorage() {}
 
@@ -326,13 +327,13 @@ bool CookieStorage::load(const std::string& filename, time_t now)
   char header[16]; // "SQLite format 3" plus \0
   std::ifstream s(filename.c_str(), std::ios::binary);
   if(!s) {
-    logger_->error("Failed to open cookie file %s", filename.c_str());
+    A2_LOG_ERROR(fmt("Failed to open cookie file %s", filename.c_str()));
     return false;
   }
   s.get(header, sizeof(header));
   if(!s) {
-    logger_->error("Failed to read header of cookie file %s",
-                   filename.c_str());
+    A2_LOG_ERROR(fmt("Failed to read header of cookie file %s",
+                     filename.c_str()));
     return false;
   }
   try {
@@ -342,11 +343,9 @@ bool CookieStorage::load(const std::string& filename, time_t now)
       try {
         Sqlite3MozCookieParser(filename).parse(cookies);
       } catch(RecoverableException& e) {
-        if(logger_->info()) {
-          logger_->info(EX_EXCEPTION_CAUGHT, e);
-          logger_->info("This does not look like Firefox3 cookie file."
-                        " Retrying, assuming it is Chromium cookie file.");
-        }
+        A2_LOG_INFO_EX(EX_EXCEPTION_CAUGHT, e);
+        A2_LOG_INFO("This does not look like Firefox3 cookie file."
+                    " Retrying, assuming it is Chromium cookie file.");
         // Try chrome cookie format
         Sqlite3ChromiumCookieParser(filename).parse(cookies);
       }
@@ -362,7 +361,7 @@ bool CookieStorage::load(const std::string& filename, time_t now)
     }
     return true;
   } catch(RecoverableException& e) {
-    logger_->error("Failed to load cookies from %s", filename.c_str());
+    A2_LOG_ERROR(fmt("Failed to load cookies from %s", filename.c_str()));
     return false;
   }
 }
@@ -373,7 +372,7 @@ bool CookieStorage::saveNsFormat(const std::string& filename)
   {
     std::ofstream o(tempfilename.c_str(), std::ios::binary);
     if(!o) {
-      logger_->error("Cannot create cookie file %s", filename.c_str());
+      A2_LOG_ERROR(fmt("Cannot create cookie file %s", filename.c_str()));
       return false;
     }
     for(std::deque<DomainEntry>::const_iterator i = domains_.begin(),
@@ -382,15 +381,16 @@ bool CookieStorage::saveNsFormat(const std::string& filename)
     }
     o.flush();
     if(!o) {
-      logger_->error("Failed to save cookies to %s", filename.c_str());
+      A2_LOG_ERROR(fmt("Failed to save cookies to %s", filename.c_str()));
       return false;
     }  
   }
   if(File(tempfilename).renameTo(filename)) {
     return true;
   } else {
-    logger_->error("Could not rename file %s as %s",
-                   tempfilename.c_str(), filename.c_str());
+    A2_LOG_ERROR(fmt("Could not rename file %s as %s",
+                     tempfilename.c_str(),
+                     filename.c_str()));
     return false;
   }
 }

+ 0 - 4
src/CookieStorage.h

@@ -47,8 +47,6 @@
 
 namespace aria2 {
 
-class Logger;
-
 class CookieStorage {
 public:
 
@@ -122,8 +120,6 @@ public:
 private:
   std::deque<DomainEntry> domains_;
 
-  Logger* logger_;
-
   template<typename InputIterator>
   void storeCookies(InputIterator first, InputIterator last, time_t now)
   {

+ 17 - 30
src/DHTAbstractNodeLookupTask.h

@@ -55,6 +55,7 @@
 #include "util.h"
 #include "DHTIDCloser.h"
 #include "a2functional.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -102,19 +103,15 @@ private:
       sendMessage();
     }
     if(inFlightMessage_ == 0) {
-      if(getLogger()->debug()) {
-        getLogger()->debug("Finished node_lookup for node ID %s",
-                           util::toHex(targetID_, DHT_ID_LENGTH).c_str());
-      }
+      A2_LOG_DEBUG(fmt("Finished node_lookup for node ID %s",
+                       util::toHex(targetID_, DHT_ID_LENGTH).c_str()));
       onFinish();
       updateBucket();
       setFinished(true);
     } else {
-      if(getLogger()->debug()) {
-        getLogger()->debug("%lu in flight message for node ID %s",
-                           static_cast<unsigned long>(inFlightMessage_),
-                           util::toHex(targetID_, DHT_ID_LENGTH).c_str());
-      }
+      A2_LOG_DEBUG(fmt("%lu in flight message for node ID %s",
+                       static_cast<unsigned long>(inFlightMessage_),
+                       util::toHex(targetID_, DHT_ID_LENGTH).c_str()));
     }
   }
 
@@ -167,9 +164,7 @@ public:
       inFlightMessage_ = 0;
       sendMessage();
       if(inFlightMessage_ == 0) {
-        if(getLogger()->debug()) {
-          getLogger()->debug("No message was sent in this lookup stage. Finished.");
-        }
+        A2_LOG_DEBUG("No message was sent in this lookup stage. Finished.");
         setFinished(true);
       }
     }
@@ -191,27 +186,21 @@ public:
                 DHT_ID_LENGTH) != 0) {
         entries_.push_front(*i);
         ++count;
-        if(getLogger()->debug()) {
-          getLogger()->debug("Received nodes: id=%s, ip=%s",
-                             util::toHex((*i)->node->getID(),
-                                         DHT_ID_LENGTH).c_str(),
-                             (*i)->node->getIPAddress().c_str());
-        }
+        A2_LOG_DEBUG(fmt("Received nodes: id=%s, ip=%s",
+                         util::toHex((*i)->node->getID(),
+                                     DHT_ID_LENGTH).c_str(),
+                         (*i)->node->getIPAddress().c_str()));
       }
     }
-    if(getLogger()->debug()) {
-      getLogger()->debug("%lu node lookup entries added.",
-                         static_cast<unsigned long>(count));
-    }
+    A2_LOG_DEBUG(fmt("%lu node lookup entries added.",
+                     static_cast<unsigned long>(count)));
     std::stable_sort(entries_.begin(), entries_.end(), DHTIDCloser(targetID_));
     entries_.erase
       (std::unique(entries_.begin(), entries_.end(),
                    DerefEqualTo<SharedHandle<DHTNodeLookupEntry> >()),
        entries_.end());
-    if(getLogger()->debug()) {
-      getLogger()->debug("%lu node lookup entries are unique.",
-                         static_cast<unsigned long>(entries_.size()));
-    }
+    A2_LOG_DEBUG(fmt("%lu node lookup entries are unique.",
+                     static_cast<unsigned long>(entries_.size())));
     if(entries_.size() > DHTBucket::K) {
       entries_.erase(entries_.begin()+DHTBucket::K, entries_.end());
     }
@@ -220,10 +209,8 @@ public:
 
   void onTimeout(const SharedHandle<DHTNode>& node)
   {
-    if(getLogger()->debug()) {
-      getLogger()->debug("node lookup message timeout for node ID=%s",
-                         util::toHex(node->getID(), DHT_ID_LENGTH).c_str());
-    }
+    A2_LOG_DEBUG(fmt("node lookup message timeout for node ID=%s",
+                     util::toHex(node->getID(), DHT_ID_LENGTH).c_str()));
     --inFlightMessage_;
     for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i =
           entries_.begin(), eoi = entries_.end(); i != eoi; ++i) {

+ 0 - 2
src/DHTAbstractTask.cc

@@ -41,14 +41,12 @@
 #include "DHTMessageCallback.h"
 #include "DHTBucket.h"
 #include "DHTTaskQueue.h"
-#include "LogFactory.h"
 #include "util.h"
 
 namespace aria2 {
 
 DHTAbstractTask::DHTAbstractTask():
   finished_(false),
-  logger_(LogFactory::getInstance()),
   routingTable_(0),
   dispatcher_(0),
   factory_(0),

+ 0 - 9
src/DHTAbstractTask.h

@@ -48,14 +48,10 @@ class DHTMessageFactory;
 class DHTMessage;
 class DHTTaskQueue;
 
-class Logger;
-
 class DHTAbstractTask:public DHTTask {
 private:
   bool finished_;
   
-  Logger* logger_;
-  
   SharedHandle<DHTNode> localNode_;
 
   DHTRoutingTable* routingTable_;
@@ -70,11 +66,6 @@ protected:
   {
     finished_ = f;
   }
-
-  Logger* getLogger() const
-  {
-    return logger_;
-  }
 public:
   DHTAbstractTask();
 

+ 12 - 8
src/DHTAutoSaveCommand.cc

@@ -49,17 +49,20 @@
 #include "Option.h"
 #include "message.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "a2functional.h"
 #include "FileEntry.h"
 #include "DlAbortEx.h"
 #include "StringFormat.h"
+#include "fmt.h"
 
 namespace aria2 {
 
 DHTAutoSaveCommand::DHTAutoSaveCommand
-(cuid_t cuid, DownloadEngine* e, int family, time_t interval):
-  TimeBasedCommand(cuid, e, interval),
-  family_(family) {}
+(cuid_t cuid, DownloadEngine* e, int family, time_t interval)
+ : TimeBasedCommand(cuid, e, interval),
+   family_(family)
+{}
 
 DHTAutoSaveCommand::~DHTAutoSaveCommand() {}
 
@@ -82,7 +85,7 @@ void DHTAutoSaveCommand::save()
   std::string dhtFile =
     getDownloadEngine()->getOption()->
     get(family_ == AF_INET? PREF_DHT_FILE_PATH : PREF_DHT_FILE_PATH6);
-  getLogger()->info("Saving DHT routing table to %s.", dhtFile.c_str());
+  A2_LOG_INFO(fmt("Saving DHT routing table to %s.", dhtFile.c_str()));
 
   File tempFile(dhtFile+"__temp");
   // Removing tempFile is unnecessary because the file is truncated on
@@ -118,12 +121,13 @@ void DHTAutoSaveCommand::save()
       serializer.serialize(o);
     }
     if(!tempFile.renameTo(dhtFile)) {
-      getLogger()->error("Cannot move file from %s to %s.",
-                         tempFile.getPath().c_str(), dhtFile.c_str());
+      A2_LOG_ERROR(fmt("Cannot move file from %s to %s.",
+                       tempFile.getPath().c_str(), dhtFile.c_str()));
     }
   } catch(RecoverableException& e) {
-    getLogger()->error("Exception caught while saving DHT routing table to %s",
-                       e, dhtFile.c_str());
+    A2_LOG_ERROR_EX(fmt("Exception caught while saving DHT routing table to %s",
+                        dhtFile.c_str()),
+                    e);
   }
 }
 

+ 16 - 18
src/DHTBucket.cc

@@ -47,26 +47,26 @@
 #include "bittorrent_helper.h"
 #include "bitfield.h"
 #include "wallclock.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTBucket::DHTBucket(size_t prefixLength,
-                     const unsigned char* max, const unsigned char* min,
-                     const SharedHandle<DHTNode>& localNode):
-  prefixLength_(prefixLength),
-  localNode_(localNode),
-  lastUpdated_(global::wallclock),
-  logger_(LogFactory::getInstance())
+DHTBucket::DHTBucket
+(size_t prefixLength,
+ const unsigned char* max, const unsigned char* min,
+ const SharedHandle<DHTNode>& localNode)
+  : prefixLength_(prefixLength),
+    localNode_(localNode),
+    lastUpdated_(global::wallclock)
 {
   memcpy(max_, max, DHT_ID_LENGTH);
   memcpy(min_, min, DHT_ID_LENGTH);
 }
 
-DHTBucket::DHTBucket(const SharedHandle<DHTNode>& localNode):
-  prefixLength_(0),
-  localNode_(localNode),
-  lastUpdated_(global::wallclock),
-  logger_(LogFactory::getInstance())
+DHTBucket::DHTBucket(const SharedHandle<DHTNode>& localNode)
+  : prefixLength_(0),
+    localNode_(localNode),
+    lastUpdated_(global::wallclock)
 {
   memset(max_, 0xffu, DHT_ID_LENGTH);
   memset(min_, 0, DHT_ID_LENGTH);
@@ -206,16 +206,14 @@ SharedHandle<DHTBucket> DHTBucket::split()
   }
   nodes_ = lNodes;
   // TODO create toString() and use it.
-  if(logger_->debug()) {
-    logger_->debug("New bucket. prefixLength=%u, Range:%s-%s",
+  A2_LOG_DEBUG(fmt("New bucket. prefixLength=%u, Range:%s-%s",
                    static_cast<unsigned int>(rBucket->getPrefixLength()),
                    util::toHex(rBucket->getMinID(), DHT_ID_LENGTH).c_str(),
-                   util::toHex(rBucket->getMaxID(), DHT_ID_LENGTH).c_str());
-    logger_->debug("Existing bucket. prefixLength=%u, Range:%s-%s",
+                   util::toHex(rBucket->getMaxID(), DHT_ID_LENGTH).c_str()));
+  A2_LOG_DEBUG(fmt("Existing bucket. prefixLength=%u, Range:%s-%s",
                    static_cast<unsigned int>(prefixLength_),
                    util::toHex(getMinID(), DHT_ID_LENGTH).c_str(),
-                   util::toHex(getMaxID(), DHT_ID_LENGTH).c_str());
-  }
+                   util::toHex(getMaxID(), DHT_ID_LENGTH).c_str()));
   return rBucket;
 }
 

+ 0 - 3
src/DHTBucket.h

@@ -48,7 +48,6 @@
 namespace aria2 {
 
 class DHTNode;
-class Logger;
 
 class DHTBucket {
 private:
@@ -70,8 +69,6 @@ private:
 
   Timer lastUpdated_;
 
-  Logger* logger_;
-
   bool isInRange(const unsigned char* nodeID,
                  const unsigned char* max, const unsigned char* min) const;
 public:

+ 4 - 2
src/DHTBucketRefreshTask.cc

@@ -41,7 +41,9 @@
 #include "DHTNodeLookupEntry.h"
 #include "util.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "DHTMessageCallback.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -67,8 +69,8 @@ void DHTBucketRefreshTask::startup()
       task->setTaskQueue(getTaskQueue());
       task->setLocalNode(getLocalNode());
 
-      getLogger()->info("Dispating bucket refresh. targetID=%s",
-                        util::toHex(targetID, DHT_ID_LENGTH).c_str());
+      A2_LOG_INFO(fmt("Dispating bucket refresh. targetID=%s",
+                      util::toHex(targetID, DHT_ID_LENGTH).c_str()));
       getTaskQueue()->addPeriodicTask1(task);
     }
   }

+ 8 - 6
src/DHTConnectionImpl.cc

@@ -43,13 +43,14 @@
 #include "util.h"
 #include "Socket.h"
 #include "SimpleRandomizer.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTConnectionImpl::DHTConnectionImpl(int family):
-  socket_(new SocketCore(SOCK_DGRAM)),
-  family_(family),
-  logger_(LogFactory::getInstance()) {}
+DHTConnectionImpl::DHTConnectionImpl(int family)
+  : socket_(new SocketCore(SOCK_DGRAM)),
+    family_(family)
+{}
 
 DHTConnectionImpl::~DHTConnectionImpl() {}
 
@@ -86,10 +87,11 @@ bool DHTConnectionImpl::bind(uint16_t& port, const std::string& addr)
     std::pair<std::string, uint16_t> svaddr;
     socket_->getAddrInfo(svaddr);
     port = svaddr.second;
-    logger_->notice("IPv%d DHT: listening to port %d", ipv, port);
+    A2_LOG_NOTICE(fmt("IPv%d DHT: listening to port %d", ipv, port));
     return true;
   } catch(RecoverableException& e) {
-    logger_->error("Failed to bind for IPv%d DHT. port=%u", e, ipv, port);
+    A2_LOG_ERROR_EX(fmt("Failed to bind for IPv%d DHT. port=%u", ipv, port),
+                    e);
   }
   return false;
 }

+ 0 - 3
src/DHTConnectionImpl.h

@@ -42,15 +42,12 @@
 namespace aria2 {
 
 class SocketCore;
-class Logger;
 
 class DHTConnectionImpl:public DHTConnection {
 private:
   SharedHandle<SocketCore> socket_;
 
   int family_;
-
-  Logger* logger_;
 public:
   DHTConnectionImpl(int family);
 

+ 12 - 13
src/DHTEntryPointNameResolveCommand.cc

@@ -47,7 +47,9 @@
 #include "DHTTask.h"
 #include "RequestGroupMan.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #ifdef ENABLE_ASYNC_DNS
 #include "AsyncNameResolver.h"
 #endif // ENABLE_ASYNC_DNS
@@ -108,7 +110,7 @@ bool DHTEntryPointNameResolveCommand::execute()
             return false;
           }
         } catch(RecoverableException& e) {
-          getLogger()->error(EX_EXCEPTION_CAUGHT, e);
+          A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e);
         }
         resolver_->reset();
         entryPoints_.pop_front();
@@ -129,7 +131,7 @@ bool DHTEntryPointNameResolveCommand::execute()
             resolvedEntryPoints_.push_back(p);
             addPingTask(p);
           } catch(RecoverableException& e) {
-            getLogger()->error(EX_EXCEPTION_CAUGHT, e);
+            A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e);
           }
           entryPoints_.pop_front();
         }
@@ -140,7 +142,7 @@ bool DHTEntryPointNameResolveCommand::execute()
       taskQueue_->addPeriodicTask1(taskFactory_->createBucketRefreshTask());
     }
   } catch(RecoverableException& e) {
-    getLogger()->error(EX_EXCEPTION_CAUGHT, e);
+    A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e);
   }
   return true;
 }
@@ -163,20 +165,17 @@ bool DHTEntryPointNameResolveCommand::resolveHostname
 {
   switch(resolver->getStatus()) {
   case AsyncNameResolver::STATUS_READY:
-    if(getLogger()->info()) {
-      getLogger()->info(MSG_RESOLVING_HOSTNAME,
-                        util::itos(getCuid()).c_str(), hostname.c_str());
-    }
+      A2_LOG_INFO(fmt(MSG_RESOLVING_HOSTNAME,
+                      util::itos(getCuid()).c_str(),
+                      hostname.c_str()));
     resolver->resolve(hostname);
     setNameResolverCheck(resolver);
     return false;
   case AsyncNameResolver::STATUS_SUCCESS:
-    if(getLogger()->info()) {
-      getLogger()->info(MSG_NAME_RESOLUTION_COMPLETE,
-                        util::itos(getCuid()).c_str(),
-                        resolver->getHostname().c_str(),
-                        resolver->getResolvedAddresses().front().c_str());
-    }
+    A2_LOG_INFO(fmt(MSG_NAME_RESOLUTION_COMPLETE,
+                    util::itos(getCuid()).c_str(),
+                    resolver->getHostname().c_str(),
+                    resolver->getResolvedAddresses().front().c_str()));
     return true;
     break;
   case AsyncNameResolver::STATUS_ERROR:

+ 14 - 13
src/DHTGetPeersCommand.cc

@@ -44,20 +44,23 @@
 #include "PeerStorage.h"
 #include "Peer.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "bittorrent_helper.h"
 #include "DownloadContext.h"
 #include "wallclock.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTGetPeersCommand::DHTGetPeersCommand(cuid_t cuid,
-                                       RequestGroup* requestGroup,
-                                       DownloadEngine* e):
-  Command(cuid),
-  requestGroup_(requestGroup),
-  e_(e),
-  numRetry_(0),
-  lastGetPeerTime_(0)
+DHTGetPeersCommand::DHTGetPeersCommand
+(cuid_t cuid,
+ RequestGroup* requestGroup,
+ DownloadEngine* e)
+  : Command(cuid),
+    requestGroup_(requestGroup),
+    e_(e),
+    numRetry_(0),
+    lastGetPeerTime_(0)
 {
   requestGroup_->increaseNumCommand();
 }
@@ -79,11 +82,9 @@ bool DHTGetPeersCommand::execute()
       (btRuntime_->lessThanMinPeers() &&
        lastGetPeerTime_.difference(global::wallclock) >= GET_PEER_MIN_INTERVAL
        && !requestGroup_->downloadFinished()))) {
-    if(getLogger()->debug()) {
-      getLogger()->debug("Issuing PeerLookup for infoHash=%s",
-                         bittorrent::getInfoHashString
-                         (requestGroup_->getDownloadContext()).c_str());
-    }
+    A2_LOG_DEBUG(fmt("Issuing PeerLookup for infoHash=%s",
+                     bittorrent::getInfoHashString
+                     (requestGroup_->getDownloadContext()).c_str()));
     task_ = taskFactory_->createPeerLookupTask
       (requestGroup_->getDownloadContext(), btRuntime_, peerStorage_);
     taskQueue_->addPeriodicTask2(task_);

+ 7 - 4
src/DHTInteractionCommand.cc

@@ -43,14 +43,17 @@
 #include "message.h"
 #include "RequestGroupMan.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "DHTMessageCallback.h"
 #include "DHTNode.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTInteractionCommand::DHTInteractionCommand(cuid_t cuid, DownloadEngine* e):
-  Command(cuid),
-  e_(e) {}
+DHTInteractionCommand::DHTInteractionCommand(cuid_t cuid, DownloadEngine* e)
+  : Command(cuid),
+    e_(e)
+{}
 
 DHTInteractionCommand::~DHTInteractionCommand()
 {
@@ -86,7 +89,7 @@ bool DHTInteractionCommand::execute()
   try {
     dispatcher_->sendMessages();
   } catch(RecoverableException& e) {
-    getLogger()->error(EX_EXCEPTION_CAUGHT, e);
+    A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e);
   }
   e_->addCommand(this);
   return false;

+ 11 - 13
src/DHTMessageDispatcherImpl.cc

@@ -42,15 +42,16 @@
 #include "Logger.h"
 #include "DHTConstants.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "DHTNode.h"
 
 namespace aria2 {
 
 DHTMessageDispatcherImpl::DHTMessageDispatcherImpl
-(const SharedHandle<DHTMessageTracker>& tracker):
-  tracker_(tracker),
-  timeout_(DHT_MESSAGE_TIMEOUT),
-  logger_(LogFactory::getInstance()) {}
+(const SharedHandle<DHTMessageTracker>& tracker)
+  : tracker_(tracker),
+    timeout_(DHT_MESSAGE_TIMEOUT)
+{}
 
 DHTMessageDispatcherImpl::~DHTMessageDispatcherImpl() {}
 
@@ -82,15 +83,14 @@ DHTMessageDispatcherImpl::sendMessage
       if(!entry->message->isReply()) {
         tracker_->addMessage(entry->message, entry->timeout, entry->callback);
       }
-      if(logger_->info()) {
-        logger_->info("Message sent: %s", entry->message->toString().c_str());
-      }
+      A2_LOG_INFO(fmt("Message sent: %s", entry->message->toString().c_str()));
     } else {
       return false;
     }
   } catch(RecoverableException& e) {
-    logger_->info("Failed to send message: %s",
-                  e, entry->message->toString().c_str());
+    A2_LOG_INFO_EX(fmt("Failed to send message: %s",
+                       entry->message->toString().c_str()),
+                   e);
     // Add message to DHTMessageTracker with timeout 0 to treat it as
     // time out. Without this, we have untracked message and some of
     // DHTTask(such as DHTAbstractNodeLookupTask) don't finish
@@ -114,10 +114,8 @@ void DHTMessageDispatcherImpl::sendMessages()
     }
   }
   messageQueue_.erase(messageQueue_.begin(), itr);
-  if(logger_->debug()) {
-    logger_->debug("%lu dht messages remaining in the queue.",
-                   static_cast<unsigned long>(messageQueue_.size()));
-  }
+  A2_LOG_DEBUG(fmt("%lu dht messages remaining in the queue.",
+                   static_cast<unsigned long>(messageQueue_.size())));
 }
 
 size_t DHTMessageDispatcherImpl::countMessageInQueue() const

+ 0 - 3
src/DHTMessageDispatcherImpl.h

@@ -42,7 +42,6 @@ namespace aria2 {
 
 class DHTMessageTracker;
 struct DHTMessageEntry;
-class Logger;
 
 class DHTMessageDispatcherImpl:public DHTMessageDispatcher {
 private:
@@ -52,8 +51,6 @@ private:
 
   time_t timeout_;
 
-  Logger* logger_;
-
   bool sendMessage(const SharedHandle<DHTMessageEntry>& msg);
 public:
   DHTMessageDispatcherImpl(const SharedHandle<DHTMessageTracker>& tracker);

+ 12 - 15
src/DHTMessageFactoryImpl.cc

@@ -61,17 +61,18 @@
 #include "Peer.h"
 #include "Logger.h"
 #include "StringFormat.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTMessageFactoryImpl::DHTMessageFactoryImpl(int family):
-  family_(family),
-  connection_(0),
-  dispatcher_(0),
-  routingTable_(0),
-  peerAnnounceStorage_(0),
-  tokenTracker_(0),
-  logger_(LogFactory::getInstance()) {}
+DHTMessageFactoryImpl::DHTMessageFactoryImpl(int family)
+  : family_(family),
+    connection_(0),
+    dispatcher_(0),
+    routingTable_(0),
+    peerAnnounceStorage_(0),
+    tokenTracker_(0)
+{}
 
 DHTMessageFactoryImpl::~DHTMessageFactoryImpl() {}
 
@@ -256,15 +257,11 @@ DHTMessageFactoryImpl::createResponseMessage
     // for now, just report error message arrived and throw exception.
     const List* e = getList(dict, DHTUnknownMessage::E);
     if(e->size() == 2) {
-      if(logger_->info()) {
-        logger_->info("Received Error DHT message. code=%s, msg=%s",
+      A2_LOG_INFO(fmt("Received Error DHT message. code=%s, msg=%s",
                       util::itos(getInteger(e, 0)->i()).c_str(),
-                      util::percentEncode(getString(e, 1)->s()).c_str());
-      }
+                      util::percentEncode(getString(e, 1)->s()).c_str()));
     } else {
-      if(logger_->debug()) {
-        logger_->debug("e doesn't have 2 elements.");
-      }
+      A2_LOG_DEBUG("e doesn't have 2 elements.");
     }
     throw DL_ABORT_EX("Received Error DHT message.");
   } else if(y->s() != DHTResponseMessage::R) {

+ 0 - 3
src/DHTMessageFactoryImpl.h

@@ -45,7 +45,6 @@ class DHTMessageDispatcher;
 class DHTRoutingTable;
 class DHTPeerAnnounceStorage;
 class DHTTokenTracker;
-class Logger;
 class DHTMessage;
 class DHTAbstractMessage;
 
@@ -64,8 +63,6 @@ private:
   DHTPeerAnnounceStorage* peerAnnounceStorage_;
 
   DHTTokenTracker* tokenTracker_;
-
-  Logger* logger_;
   
   // search node in routingTable. If it is not found, create new one.
   SharedHandle<DHTNode> getRemoteNode

+ 13 - 15
src/DHTMessageReceiver.cc

@@ -52,12 +52,13 @@
 #include "Logger.h"
 #include "util.h"
 #include "bencode2.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTMessageReceiver::DHTMessageReceiver(const SharedHandle<DHTMessageTracker>& tracker):
-  tracker_(tracker),
-  logger_(LogFactory::getInstance())
+DHTMessageReceiver::DHTMessageReceiver
+(const SharedHandle<DHTMessageTracker>& tracker)
+  : tracker_(tracker)
 {}
 
 DHTMessageReceiver::~DHTMessageReceiver() {}
@@ -84,13 +85,14 @@ SharedHandle<DHTMessage> DHTMessageReceiver::receiveMessage()
           isReply = true;
         }
       } else {
-        logger_->info("Malformed DHT message. Missing 'y' key. From:%s:%u",
-                      remoteAddr.c_str(), remotePort);
+        A2_LOG_INFO(fmt("Malformed DHT message. Missing 'y' key. From:%s:%u",
+                        remoteAddr.c_str(), remotePort));
         return handleUnknownMessage(data, sizeof(data), remoteAddr, remotePort);
       }
     } else {
-      logger_->info("Malformed DHT message. This is not a bencoded directory."
-                    " From:%s:%u", remoteAddr.c_str(), remotePort);
+      A2_LOG_INFO(fmt("Malformed DHT message. This is not a bencoded directory."
+                      " From:%s:%u",
+                      remoteAddr.c_str(), remotePort));
       return handleUnknownMessage(data, sizeof(data), remoteAddr, remotePort);
     }
     if(isReply) {
@@ -111,14 +113,14 @@ SharedHandle<DHTMessage> DHTMessageReceiver::receiveMessage()
         factory_->createQueryMessage(dict, remoteAddr, remotePort);
       if(*message->getLocalNode() == *message->getRemoteNode()) {
         // drop message from localnode
-        logger_->info("Received DHT message from localnode.");
+        A2_LOG_INFO("Received DHT message from localnode.");
         return handleUnknownMessage(data, sizeof(data), remoteAddr, remotePort);
       }
       onMessageReceived(message);
       return message;
     }
   } catch(RecoverableException& e) {
-    logger_->info("Exception thrown while receiving DHT message.", e);
+    A2_LOG_INFO_EX("Exception thrown while receiving DHT message.", e);
     return handleUnknownMessage(data, sizeof(data), remoteAddr, remotePort);
   }
 }
@@ -126,9 +128,7 @@ SharedHandle<DHTMessage> DHTMessageReceiver::receiveMessage()
 void DHTMessageReceiver::onMessageReceived
 (const SharedHandle<DHTMessage>& message)
 {
-  if(logger_->info()) {
-    logger_->info("Message received: %s", message->toString().c_str());
-  }
+  A2_LOG_INFO(fmt("Message received: %s", message->toString().c_str()));
   message->validate();
   message->doReceivedAction();
   message->getRemoteNode()->markGood();
@@ -149,9 +149,7 @@ DHTMessageReceiver::handleUnknownMessage(const unsigned char* data,
 {
   SharedHandle<DHTMessage> m =
     factory_->createUnknownMessage(data, length, remoteAddr, remotePort);
-  if(logger_->info()) {
-    logger_->info("Message received: %s", m->toString().c_str());
-  }
+  A2_LOG_INFO(fmt("Message received: %s", m->toString().c_str()));
   return m;
 }
 

+ 0 - 4
src/DHTMessageReceiver.h

@@ -46,8 +46,6 @@ class DHTConnection;
 class DHTMessageFactory;
 class DHTRoutingTable;
 
-class Logger;
-
 class DHTMessageReceiver {
 private:
   SharedHandle<DHTMessageTracker> tracker_;
@@ -58,8 +56,6 @@ private:
 
   SharedHandle<DHTRoutingTable> routingTable_;
 
-  Logger* logger_;
-
   SharedHandle<DHTMessage>
   handleUnknownMessage(const unsigned char* data, size_t length,
                        const std::string& remoteAddr, uint16_t remotePort);

+ 13 - 24
src/DHTMessageTracker.cc

@@ -48,11 +48,11 @@
 #include "DlAbortEx.h"
 #include "DHTConstants.h"
 #include "StringFormat.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTMessageTracker::DHTMessageTracker():
-  logger_(LogFactory::getInstance()) {}
+DHTMessageTracker::DHTMessageTracker() {}
 
 DHTMessageTracker::~DHTMessageTracker() {}
 
@@ -71,18 +71,15 @@ DHTMessageTracker::messageArrived
     throw DL_ABORT_EX(StringFormat("Malformed DHT message. From:%s:%u",
                                    ipaddr.c_str(), port).str());
   }
-  if(logger_->debug()) {
-    logger_->debug("Searching tracker entry for TransactionID=%s, Remote=%s:%u",
-                   util::toHex(tid->s()).c_str(), ipaddr.c_str(), port);
-  }
+  A2_LOG_DEBUG(fmt("Searching tracker entry for TransactionID=%s, Remote=%s:%u",
+                   util::toHex(tid->s()).c_str(),
+                   ipaddr.c_str(), port));
   for(std::deque<SharedHandle<DHTMessageTrackerEntry> >::iterator i =
         entries_.begin(), eoi = entries_.end(); i != eoi; ++i) {
     if((*i)->match(tid->s(), ipaddr, port)) {
       SharedHandle<DHTMessageTrackerEntry> entry = *i;
       entries_.erase(i);
-      if(logger_->debug()) {
-        logger_->debug("Tracker entry found.");
-      }
+      A2_LOG_DEBUG("Tracker entry found.");
       SharedHandle<DHTNode> targetNode = entry->getTargetNode();
       try {
         SharedHandle<DHTResponseMessage> message =
@@ -91,9 +88,7 @@ DHTMessageTracker::messageArrived
                                           targetNode->getPort());
 
         int64_t rtt = entry->getElapsedMillis();
-        if(logger_->debug()) {
-          logger_->debug("RTT is %s", util::itos(rtt).c_str());
-        }
+        A2_LOG_DEBUG(fmt("RTT is %s", util::itos(rtt).c_str()));
         message->getRemoteNode()->updateRTT(rtt);
         SharedHandle<DHTMessageCallback> callback = entry->getCallback();
         return std::make_pair(message, callback);
@@ -103,9 +98,7 @@ DHTMessageTracker::messageArrived
       }
     }
   }
-  if(logger_->debug()) {
-    logger_->debug("Tracker entry not found.");
-  }
+  A2_LOG_DEBUG("Tracker entry not found.");
   return std::pair<SharedHandle<DHTResponseMessage>,
                    SharedHandle<DHTMessageCallback> >();
 }
@@ -115,17 +108,13 @@ void DHTMessageTracker::handleTimeoutEntry
 {
   try {
     SharedHandle<DHTNode> node = entry->getTargetNode();
-    if(logger_->debug()) {
-      logger_->debug("Message timeout: To:%s:%u",
-                     node->getIPAddress().c_str(), node->getPort());
-    }
+    A2_LOG_DEBUG(fmt("Message timeout: To:%s:%u",
+                     node->getIPAddress().c_str(), node->getPort()));
     node->updateRTT(entry->getElapsedMillis());
     node->timeout();
     if(node->isBad()) {
-      if(logger_->debug()) {
-        logger_->debug("Marked bad: %s:%u",
-                       node->getIPAddress().c_str(), node->getPort());
-      }
+      A2_LOG_DEBUG(fmt("Marked bad: %s:%u",
+                       node->getIPAddress().c_str(), node->getPort()));
       routingTable_->dropNode(node);
     }
     SharedHandle<DHTMessageCallback> callback = entry->getCallback();
@@ -133,7 +122,7 @@ void DHTMessageTracker::handleTimeoutEntry
       callback->onTimeout(node);
     }
   } catch(RecoverableException& e) {
-    logger_->info("Exception thrown while handling timeouts.", e);
+    A2_LOG_INFO_EX("Exception thrown while handling timeouts.", e);
   }
 }
 

+ 0 - 3
src/DHTMessageTracker.h

@@ -52,7 +52,6 @@ class DHTMessageCallback;
 class DHTRoutingTable;
 class DHTMessageFactory;
 class DHTMessageTrackerEntry;
-class Logger;
 
 class DHTMessageTracker {
 private:
@@ -62,8 +61,6 @@ private:
 
   SharedHandle<DHTMessageFactory> factory_;
 
-  Logger* logger_;
-
   void handleTimeoutEntry(const SharedHandle<DHTMessageTrackerEntry>& entry);
 public:
   DHTMessageTracker();

+ 5 - 3
src/DHTPeerAnnounceCommand.cc

@@ -39,12 +39,14 @@
 #include "RecoverableException.h"
 #include "message.h"
 #include "Logger.h"
+#include "LogFactory.h"
 
 namespace aria2 {
 
 DHTPeerAnnounceCommand::DHTPeerAnnounceCommand
-(cuid_t cuid, DownloadEngine* e, time_t interval):
-  TimeBasedCommand(cuid, e, interval) {}
+(cuid_t cuid, DownloadEngine* e, time_t interval)
+  : TimeBasedCommand(cuid, e, interval)
+{}
 
 DHTPeerAnnounceCommand::~DHTPeerAnnounceCommand() {}
 
@@ -61,7 +63,7 @@ void DHTPeerAnnounceCommand::process()
   try {
     peerAnnounceStorage_->handleTimeout();
   } catch(RecoverableException& e) {
-    getLogger()->error(EX_EXCEPTION_CAUGHT, e);
+    A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e);
   }
 }
 

+ 12 - 21
src/DHTPeerAnnounceStorage.cc

@@ -48,11 +48,11 @@
 #include "util.h"
 #include "a2functional.h"
 #include "wallclock.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTPeerAnnounceStorage::DHTPeerAnnounceStorage():
-  logger_(LogFactory::getInstance()) {}
+DHTPeerAnnounceStorage::DHTPeerAnnounceStorage() {}
 
 DHTPeerAnnounceStorage::~DHTPeerAnnounceStorage() {}
 
@@ -89,11 +89,9 @@ void
 DHTPeerAnnounceStorage::addPeerAnnounce(const unsigned char* infoHash,
                                         const std::string& ipaddr, uint16_t port)
 {
-  if(logger_->debug()) {
-    logger_->debug("Adding %s:%u to peer announce list: infoHash=%s",
+  A2_LOG_DEBUG(fmt("Adding %s:%u to peer announce list: infoHash=%s",
                    ipaddr.c_str(), port,
-                   util::toHex(infoHash, DHT_ID_LENGTH).c_str());
-  }
+                   util::toHex(infoHash, DHT_ID_LENGTH).c_str()));
   getPeerAnnounceEntry(infoHash)->addPeerAddrEntry(PeerAddrEntry(ipaddr, port));
 }
 
@@ -131,25 +129,19 @@ public:
 
 void DHTPeerAnnounceStorage::handleTimeout()
 {
-  if(logger_->debug()) {
-    logger_->debug("Now purge peer announces(%lu entries) which are timed out.",
-                   static_cast<unsigned long>(entries_.size()));
-  }
+  A2_LOG_DEBUG(fmt("Now purge peer announces(%lu entries) which are timed out.",
+                   static_cast<unsigned long>(entries_.size())));
   std::for_each(entries_.begin(), entries_.end(), RemoveStalePeerAddrEntry());
   entries_.erase(std::remove_if(entries_.begin(), entries_.end(),
                                 mem_fun_sh(&DHTPeerAnnounceEntry::empty)),
                  entries_.end());
-  if(logger_->debug()) {
-    logger_->debug("Currently %lu peer announce entries",
-                   static_cast<unsigned long>(entries_.size()));
-  }
+  A2_LOG_DEBUG(fmt("Currently %lu peer announce entries",
+                   static_cast<unsigned long>(entries_.size())));
 }
 
 void DHTPeerAnnounceStorage::announcePeer()
 {
-  if(logger_->debug()) {
-    logger_->debug("Now announcing peer.");
-  }
+  A2_LOG_DEBUG("Now announcing peer.");
   for(std::deque<SharedHandle<DHTPeerAnnounceEntry> >::iterator i =
         entries_.begin(), eoi = entries_.end(); i != eoi; ++i) {
     if((*i)->getLastUpdated().
@@ -158,10 +150,9 @@ void DHTPeerAnnounceStorage::announcePeer()
       SharedHandle<DHTTask> task =
         taskFactory_->createPeerAnnounceTask((*i)->getInfoHash());
       taskQueue_->addPeriodicTask2(task);
-      if(logger_->debug()) {
-        logger_->debug("Added 1 peer announce: infoHash=%s",
-                       util::toHex((*i)->getInfoHash(), DHT_ID_LENGTH).c_str());
-      }
+      A2_LOG_DEBUG
+        (fmt("Added 1 peer announce: infoHash=%s",
+             util::toHex((*i)->getInfoHash(), DHT_ID_LENGTH).c_str()));
     }
   }
 }

+ 0 - 3
src/DHTPeerAnnounceStorage.h

@@ -48,7 +48,6 @@ class Peer;
 class DHTPeerAnnounceEntry;
 class DHTTaskQueue;
 class DHTTaskFactory;
-class Logger;
 
 class DHTPeerAnnounceStorage {
 private:
@@ -59,8 +58,6 @@ private:
   SharedHandle<DHTTaskQueue> taskQueue_;
 
   SharedHandle<DHTTaskFactory> taskFactory_;
-
-  Logger* logger_;
 public:
   DHTPeerAnnounceStorage();
 

+ 10 - 9
src/DHTPeerLookupTask.cc

@@ -36,6 +36,7 @@
 #include "Peer.h"
 #include "DHTGetPeersReplyMessage.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "DHTMessageFactory.h"
 #include "DHTNode.h"
 #include "DHTNodeLookupEntry.h"
@@ -48,13 +49,15 @@
 #include "bittorrent_helper.h"
 #include "DHTPeerLookupTaskCallback.h"
 #include "DHTQueryMessage.h"
+#include "fmt.h"
 
 namespace aria2 {
 
 DHTPeerLookupTask::DHTPeerLookupTask
-(const SharedHandle<DownloadContext>& downloadContext):
-  DHTAbstractNodeLookupTask<DHTGetPeersReplyMessage>
-  (bittorrent::getInfoHash(downloadContext)) {}
+(const SharedHandle<DownloadContext>& downloadContext)
+  : DHTAbstractNodeLookupTask<DHTGetPeersReplyMessage>
+    (bittorrent::getInfoHash(downloadContext))
+{}
 
 void
 DHTPeerLookupTask::getNodesFromMessage
@@ -75,8 +78,8 @@ void DHTPeerLookupTask::onReceivedInternal
   peerStorage_->addPeer(message->getValues());
   peers_.insert(peers_.end(),
                 message->getValues().begin(), message->getValues().end());
-  getLogger()->info("Received %lu peers.",
-                    static_cast<unsigned long>(message->getValues().size()));
+  A2_LOG_INFO(fmt("Received %lu peers.",
+                  static_cast<unsigned long>(message->getValues().size())));
 }
   
 SharedHandle<DHTMessage> DHTPeerLookupTask::createMessage
@@ -93,10 +96,8 @@ SharedHandle<DHTMessageCallback> DHTPeerLookupTask::createCallback()
 
 void DHTPeerLookupTask::onFinish()
 {
-  if(getLogger()->debug()) {
-    getLogger()->debug("Peer lookup for %s finished",
-                       util::toHex(getTargetID(), DHT_ID_LENGTH).c_str());
-  }
+  A2_LOG_DEBUG(fmt("Peer lookup for %s finished",
+                   util::toHex(getTargetID(), DHT_ID_LENGTH).c_str()));
   // send announce_peer message to K closest nodes
   size_t num = DHTBucket::K;
   for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i =

+ 16 - 14
src/DHTReplaceNodeTask.cc

@@ -39,17 +39,19 @@
 #include "DHTMessageFactory.h"
 #include "DHTMessageDispatcher.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "DHTPingReplyMessageCallback.h"
 #include "DHTQueryMessage.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTReplaceNodeTask::DHTReplaceNodeTask(const SharedHandle<DHTBucket>& bucket,
-                                       const SharedHandle<DHTNode>& newNode):
-  bucket_(bucket),
-  newNode_(newNode),
-  numRetry_(0),
-  timeout_(DHT_MESSAGE_TIMEOUT)
+DHTReplaceNodeTask::DHTReplaceNodeTask
+(const SharedHandle<DHTBucket>& bucket, const SharedHandle<DHTNode>& newNode)
+  : bucket_(bucket),
+    newNode_(newNode),
+    numRetry_(0),
+    timeout_(DHT_MESSAGE_TIMEOUT)
 {}
 
 DHTReplaceNodeTask::~DHTReplaceNodeTask() {}
@@ -75,8 +77,8 @@ void DHTReplaceNodeTask::sendMessage()
 
 void DHTReplaceNodeTask::onReceived(const DHTPingReplyMessage* message)
 {
-  getLogger()->info("ReplaceNode: Ping reply received from %s.",
-                    message->getRemoteNode()->toString().c_str());
+  A2_LOG_INFO(fmt("ReplaceNode: Ping reply received from %s.",
+                  message->getRemoteNode()->toString().c_str()));
   setFinished(true);
 }
 
@@ -84,16 +86,16 @@ void DHTReplaceNodeTask::onTimeout(const SharedHandle<DHTNode>& node)
 {
   ++numRetry_;
   if(numRetry_ >= MAX_RETRY) {
-    getLogger()->info("ReplaceNode: Ping failed %lu times. Replace %s with %s.",
-                      static_cast<unsigned long>(numRetry_),
-                      node->toString().c_str(),
-                      newNode_->toString().c_str());
+    A2_LOG_INFO(fmt("ReplaceNode: Ping failed %lu times. Replace %s with %s.",
+                    static_cast<unsigned long>(numRetry_),
+                    node->toString().c_str(),
+                    newNode_->toString().c_str()));
     node->markBad();
     bucket_->addNode(newNode_);
     setFinished(true);
   } else {
-    getLogger()->info("ReplaceNode: Ping reply timeout from %s. Try once more.",
-                      node->toString().c_str());
+    A2_LOG_INFO(fmt("ReplaceNode: Ping reply timeout from %s. Try once more.",
+                    node->toString().c_str()));
     sendMessage();
   }
 }

+ 8 - 19
src/DHTRoutingTable.cc

@@ -45,6 +45,7 @@
 #include "util.h"
 #include "LogFactory.h"
 #include "Logger.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -52,8 +53,7 @@ DHTRoutingTable::DHTRoutingTable(const SharedHandle<DHTNode>& localNode)
   : localNode_(localNode),
     root_(new DHTBucketTreeNode
           (SharedHandle<DHTBucket>(new DHTBucket(localNode_)))),
-    numBucket_(1),
-    logger_(LogFactory::getInstance())
+    numBucket_(1)
 {}
 
 DHTRoutingTable::~DHTRoutingTable()
@@ -73,30 +73,21 @@ bool DHTRoutingTable::addGoodNode(const SharedHandle<DHTNode>& node)
 
 bool DHTRoutingTable::addNode(const SharedHandle<DHTNode>& node, bool good)
 {
-  if(logger_->debug()) {
-    logger_->debug("Trying to add node:%s", node->toString().c_str());
-  }
+  A2_LOG_DEBUG(fmt("Trying to add node:%s", node->toString().c_str()));
   if(*localNode_ == *node) {
-    if(logger_->debug()) {
-      logger_->debug("Adding node with the same ID with localnode is not"
-                     " allowed.");
-    }
+    A2_LOG_DEBUG("Adding node with the same ID with localnode is not allowed.");
     return false;
   }
   DHTBucketTreeNode* treeNode = dht::findTreeNodeFor(root_, node->getID());
   while(1) {
     const SharedHandle<DHTBucket>& bucket = treeNode->getBucket();
     if(bucket->addNode(node)) {
-      if(logger_->debug()) {
-        logger_->debug("Added DHTNode.");
-      }
+      A2_LOG_DEBUG("Added DHTNode.");
       return true;
     } else if(bucket->splitAllowed()) {
-      if(logger_->debug()) {
-        logger_->debug("Splitting bucket. Range:%s-%s",
+      A2_LOG_DEBUG(fmt("Splitting bucket. Range:%s-%s",
                        util::toHex(bucket->getMinID(), DHT_ID_LENGTH).c_str(),
-                       util::toHex(bucket->getMaxID(), DHT_ID_LENGTH).c_str());
-      }
+                       util::toHex(bucket->getMaxID(), DHT_ID_LENGTH).c_str()));
       treeNode->split();
       ++numBucket_;
       if(treeNode->getLeft()->isInRange(node->getID())) {
@@ -107,9 +98,7 @@ bool DHTRoutingTable::addNode(const SharedHandle<DHTNode>& node, bool good)
     } else {
       if(good) {
         bucket->cacheNode(node);
-        if(logger_->debug()) {
-          logger_->debug("Cached node=%s", node->toString().c_str());
-        }
+        A2_LOG_DEBUG(fmt("Cached node=%s", node->toString().c_str()));
       }
       return false;
     }

+ 0 - 3
src/DHTRoutingTable.h

@@ -49,7 +49,6 @@ class DHTBucket;
 class DHTTaskQueue;
 class DHTTaskFactory;
 class DHTBucketTreeNode;
-class Logger;
 
 class DHTRoutingTable {
 private:
@@ -63,8 +62,6 @@ private:
 
   SharedHandle<DHTTaskFactory> taskFactory_;
 
-  Logger* logger_;
-
   bool addNode(const SharedHandle<DHTNode>& node, bool good);
 public:
   DHTRoutingTable(const SharedHandle<DHTNode>& localNode);

+ 12 - 10
src/DHTSetup.cc

@@ -69,10 +69,11 @@
 #include "RecoverableException.h"
 #include "a2functional.h"
 #include "DownloadEngine.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTSetup::DHTSetup():logger_(LogFactory::getInstance()) {}
+DHTSetup::DHTSetup() {}
 
 DHTSetup::~DHTSetup() {}
 
@@ -105,8 +106,10 @@ void DHTSetup::setup
       deserializer.deserialize(in);
       localNode = deserializer.getLocalNode();
     } catch(RecoverableException& e) {
-      logger_->error("Exception caught while loading DHT routing table from %s",
-                     e, dhtFile.c_str());
+      A2_LOG_ERROR_EX
+        (fmt("Exception caught while loading DHT routing table from %s",
+             dhtFile.c_str()),
+         e);
     }
     if(!localNode) {
       localNode.reset(new DHTNode());
@@ -125,10 +128,8 @@ void DHTSetup::setup
       }
       localNode->setPort(port);
     }
-    if(logger_->debug()) {
-      logger_->debug("Initialized local node ID=%s",
-                     util::toHex(localNode->getID(), DHT_ID_LENGTH).c_str());
-    }
+    A2_LOG_DEBUG(fmt("Initialized local node ID=%s",
+                     util::toHex(localNode->getID(), DHT_ID_LENGTH).c_str()));
     SharedHandle<DHTRoutingTable> routingTable(new DHTRoutingTable(localNode));
 
     SharedHandle<DHTMessageFactoryImpl> factory
@@ -240,7 +241,7 @@ void DHTSetup::setup
         tempCommands->push_back(command);
       }
     } else {
-      logger_->info("No DHT entry point specified.");
+      A2_LOG_INFO("No DHT entry point specified.");
     }
     {
       DHTInteractionCommand* command =
@@ -288,8 +289,9 @@ void DHTSetup::setup
     commands.insert(commands.end(), tempCommands->begin(), tempCommands->end());
     tempCommands->clear();
   } catch(RecoverableException& e) {
-    logger_->error("Exception caught while initializing DHT functionality."
-                   " DHT is disabled.", e);
+    A2_LOG_ERROR_EX(fmt("Exception caught while initializing DHT functionality."
+                        " DHT is disabled."),
+                    e);
     if(family == AF_INET) {
       DHTRegistry::clearData();
     } else {

+ 1 - 3
src/DHTSetup.h

@@ -39,13 +39,11 @@
 #include <vector>
 
 namespace aria2 {
-class Logger;
+
 class DownloadEngine;
 class Command;
 
 class DHTSetup {
-private:
-  Logger* logger_;
 public:
   DHTSetup();
 

+ 6 - 7
src/DHTTaskExecutor.cc

@@ -40,12 +40,13 @@
 #include "Logger.h"
 #include "LogFactory.h"
 #include "a2functional.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DHTTaskExecutor::DHTTaskExecutor(size_t numConcurrent):
-  numConcurrent_(numConcurrent),
-  logger_(LogFactory::getInstance()) {}
+DHTTaskExecutor::DHTTaskExecutor(size_t numConcurrent)
+  : numConcurrent_(numConcurrent)
+{}
 
 DHTTaskExecutor::~DHTTaskExecutor() {}
 
@@ -64,11 +65,9 @@ void DHTTaskExecutor::update()
       --r;
     }
   }
-  if(logger_->debug()) {
-    logger_->debug("Executing %u Task(s). Queue has %u task(s).",
+  A2_LOG_DEBUG(fmt("Executing %u Task(s). Queue has %u task(s).",
                    static_cast<unsigned int>(getExecutingTaskSize()),
-                   static_cast<unsigned int>(getQueueSize()));
-  }
+                   static_cast<unsigned int>(getQueueSize())));
 }
 
 } // namespace aria2

+ 0 - 2
src/DHTTaskExecutor.h

@@ -45,14 +45,12 @@
 namespace aria2 {
 
 class DHTTask;
-class Logger;
 
 class DHTTaskExecutor {
 private:
   size_t numConcurrent_;
   std::vector<SharedHandle<DHTTask> > execTasks_;
   std::deque<SharedHandle<DHTTask> > queue_;
-  Logger* logger_;
 public:
   DHTTaskExecutor(size_t numConcurrent);
 

+ 7 - 9
src/DHTTaskFactoryImpl.cc

@@ -38,8 +38,6 @@
 #include "DHTMessageDispatcher.h"
 #include "DHTMessageFactory.h"
 #include "DHTTaskQueue.h"
-#include "LogFactory.h"
-#include "Logger.h"
 #include "DHTPingTask.h"
 #include "DHTNodeLookupTask.h"
 #include "DHTBucketRefreshTask.h"
@@ -53,13 +51,13 @@
 
 namespace aria2 {
 
-DHTTaskFactoryImpl::DHTTaskFactoryImpl():
-  routingTable_(0),
-  dispatcher_(0),
-  factory_(0),
-  taskQueue_(0),
-  timeout_(DHT_MESSAGE_TIMEOUT),
-  logger_(LogFactory::getInstance()) {}
+DHTTaskFactoryImpl::DHTTaskFactoryImpl()
+  : routingTable_(0),
+    dispatcher_(0),
+    factory_(0),
+    taskQueue_(0),
+    timeout_(DHT_MESSAGE_TIMEOUT)
+{}
 
 DHTTaskFactoryImpl::~DHTTaskFactoryImpl() {}
 

+ 0 - 3
src/DHTTaskFactoryImpl.h

@@ -46,7 +46,6 @@ class DHTMessageDispatcher;
 class DHTMessageFactory;
 class DHTTaskQueue;
 class DHTAbstractTask;
-class Logger;
 
 class DHTTaskFactoryImpl:public DHTTaskFactory {
 private:
@@ -62,8 +61,6 @@ private:
 
   time_t timeout_;
 
-  Logger* logger_;
-
   void setCommonProperty(const SharedHandle<DHTAbstractTask>& task);
 public:
   DHTTaskFactoryImpl();

+ 8 - 14
src/DHTTaskQueueImpl.cc

@@ -43,27 +43,21 @@ namespace {
 const size_t NUM_CONCURRENT_TASK = 5;
 } // namespace
 
-DHTTaskQueueImpl::DHTTaskQueueImpl():
-  periodicTaskQueue1_(NUM_CONCURRENT_TASK),
-  periodicTaskQueue2_(NUM_CONCURRENT_TASK),
-  immediateTaskQueue_(NUM_CONCURRENT_TASK),
-  logger_(LogFactory::getInstance()) {}
+DHTTaskQueueImpl::DHTTaskQueueImpl()
+  : periodicTaskQueue1_(NUM_CONCURRENT_TASK),
+    periodicTaskQueue2_(NUM_CONCURRENT_TASK),
+    immediateTaskQueue_(NUM_CONCURRENT_TASK)
+{}
 
 DHTTaskQueueImpl::~DHTTaskQueueImpl() {}
 
 void DHTTaskQueueImpl::executeTask()
 {
-  if(logger_->debug()) {
-    logger_->debug("Updating periodicTaskQueue1");
-  }
+  A2_LOG_DEBUG("Updating periodicTaskQueue1");
   periodicTaskQueue1_.update();
-  if(logger_->debug()) {
-    logger_->debug("Updating periodicTaskQueue2");
-  }
+  A2_LOG_DEBUG("Updating periodicTaskQueue2");
   periodicTaskQueue2_.update();
-  if(logger_->debug()) {
-    logger_->debug("Updating immediateTaskQueue");
-  }
+  A2_LOG_DEBUG("Updating immediateTaskQueue");
   immediateTaskQueue_.update();
 }
 

+ 0 - 4
src/DHTTaskQueueImpl.h

@@ -40,8 +40,6 @@
 
 namespace aria2 {
 
-class Logger;
-
 class DHTTaskQueueImpl:public DHTTaskQueue {
 private:
   DHTTaskExecutor periodicTaskQueue1_;
@@ -49,8 +47,6 @@ private:
   DHTTaskExecutor periodicTaskQueue2_;
 
   DHTTaskExecutor immediateTaskQueue_;
-
-  Logger* logger_;
 public:
   DHTTaskQueueImpl();
 

+ 6 - 5
src/DHTTokenUpdateCommand.cc

@@ -39,13 +39,14 @@
 #include "RecoverableException.h"
 #include "message.h"
 #include "Logger.h"
+#include "LogFactory.h"
 
 namespace aria2 {
 
-DHTTokenUpdateCommand::DHTTokenUpdateCommand(cuid_t cuid,
-                                             DownloadEngine* e,
-                                             time_t interval):
-  TimeBasedCommand(cuid, e, interval) {}
+DHTTokenUpdateCommand::DHTTokenUpdateCommand
+(cuid_t cuid, DownloadEngine* e, time_t interval)
+  : TimeBasedCommand(cuid, e, interval)
+{}
 
 DHTTokenUpdateCommand::~DHTTokenUpdateCommand() {}
 
@@ -62,7 +63,7 @@ void DHTTokenUpdateCommand::process()
   try {
     tokenTracker_->updateTokenSecret();
   } catch(RecoverableException& e) {
-    getLogger()->error(EX_EXCEPTION_CAUGHT, e);
+    A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e);
   }
 }
 

+ 22 - 34
src/DefaultBtAnnounce.cc

@@ -47,6 +47,7 @@
 #include "Peer.h"
 #include "Option.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "A2STR.h"
 #include "bencode2.h"
 #include "bittorrent_helper.h"
@@ -57,19 +58,18 @@ namespace aria2 {
 
 DefaultBtAnnounce::DefaultBtAnnounce
 (const SharedHandle<DownloadContext>& downloadContext,
- const Option* option):
-  downloadContext_(downloadContext),
-  trackers_(0),
-  prevAnnounceTimer_(0),
-  interval_(DEFAULT_ANNOUNCE_INTERVAL),
-  minInterval_(DEFAULT_ANNOUNCE_INTERVAL),
-  userDefinedInterval_(0),
-  complete_(0),
-  incomplete_(0),
-  announceList_(bittorrent::getTorrentAttrs(downloadContext)->announceList),
-  option_(option),
-  logger_(LogFactory::getInstance()),
-  randomizer_(SimpleRandomizer::getInstance())
+ const Option* option)
+  : downloadContext_(downloadContext),
+    trackers_(0),
+    prevAnnounceTimer_(0),
+    interval_(DEFAULT_ANNOUNCE_INTERVAL),
+    minInterval_(DEFAULT_ANNOUNCE_INTERVAL),
+    userDefinedInterval_(0),
+    complete_(0),
+    incomplete_(0),
+    announceList_(bittorrent::getTorrentAttrs(downloadContext)->announceList),
+    option_(option),
+    randomizer_(SimpleRandomizer::getInstance())
 {}
 
 DefaultBtAnnounce::~DefaultBtAnnounce() {
@@ -218,9 +218,7 @@ void
 DefaultBtAnnounce::processAnnounceResponse(const unsigned char* trackerResponse,
                                            size_t trackerResponseLength)
 {
-  if(logger_->debug()) {
-    logger_->debug("Now processing tracker response.");
-  }
+  A2_LOG_DEBUG("Now processing tracker response.");
   SharedHandle<ValueBase> decodedValue =
     bencode2::decode(trackerResponse, trackerResponseLength);
   const Dict* dict = asDict(decodedValue);
@@ -234,28 +232,22 @@ DefaultBtAnnounce::processAnnounceResponse(const unsigned char* trackerResponse,
   }
   const String* warn = asString(dict->get(BtAnnounce::WARNING_MESSAGE));
   if(warn) {
-    logger_->warn(MSG_TRACKER_WARNING_MESSAGE, warn->s().c_str());
+    A2_LOG_WARN(fmt(MSG_TRACKER_WARNING_MESSAGE, warn->s().c_str()));
   }
   const String* tid = asString(dict->get(BtAnnounce::TRACKER_ID));
   if(tid) {
     trackerId_ = tid->s();
-    if(logger_->debug()) {
-      logger_->debug("Tracker ID:%s", trackerId_.c_str());
-    }
+    A2_LOG_DEBUG(fmt("Tracker ID:%s", trackerId_.c_str()));
   }
   const Integer* ival = asInteger(dict->get(BtAnnounce::INTERVAL));
   if(ival && ival->i() > 0) {
     interval_ = ival->i();
-    if(logger_->debug()) {
-      logger_->debug("Interval:%ld", static_cast<long int>(interval_));
-    }
+    A2_LOG_DEBUG(fmt("Interval:%ld", static_cast<long int>(interval_)));
   }
   const Integer* mival = asInteger(dict->get(BtAnnounce::MIN_INTERVAL));
   if(mival && mival->i() > 0) {
     minInterval_ = mival->i();
-    if(logger_->debug()) {
-      logger_->debug("Min interval:%ld", static_cast<long int>(minInterval_));
-    }
+    A2_LOG_DEBUG(fmt("Min interval:%ld", static_cast<long int>(minInterval_)));
     minInterval_ = std::min(minInterval_, interval_);
   } else {
     // Use interval as a minInterval if minInterval is not supplied.
@@ -264,20 +256,16 @@ DefaultBtAnnounce::processAnnounceResponse(const unsigned char* trackerResponse,
   const Integer* comp = asInteger(dict->get(BtAnnounce::COMPLETE));
   if(comp) {
     complete_ = comp->i();
-    if(logger_->debug()) {
-      logger_->debug("Complete:%d", complete_);
-    }
+    A2_LOG_DEBUG(fmt("Complete:%d", complete_));
   }
   const Integer* incomp = asInteger(dict->get(BtAnnounce::INCOMPLETE));
   if(incomp) {
     incomplete_ = incomp->i();
-    if(logger_->debug()) {
-      logger_->debug("Incomplete:%d", incomplete_);
-    }
+    A2_LOG_DEBUG(fmt("Incomplete:%d", incomplete_));
   }
   const SharedHandle<ValueBase>& peerData = dict->get(BtAnnounce::PEERS);
   if(!peerData) {
-    logger_->info(MSG_NO_PEER_LIST_RECEIVED);
+    A2_LOG_INFO(MSG_NO_PEER_LIST_RECEIVED);
   } else {
     if(!btRuntime_->isHalt() && btRuntime_->lessThanMinPeers()) {
       std::vector<SharedHandle<Peer> > peers;
@@ -287,7 +275,7 @@ DefaultBtAnnounce::processAnnounceResponse(const unsigned char* trackerResponse,
   }
   const SharedHandle<ValueBase>& peer6Data = dict->get(BtAnnounce::PEERS6);
   if(!peer6Data) {
-    logger_->info("No peers6 received.");
+    A2_LOG_INFO("No peers6 received.");
   } else {
     if(!btRuntime_->isHalt() && btRuntime_->lessThanMinPeers()) {
       std::vector<SharedHandle<Peer> > peers;

+ 0 - 2
src/DefaultBtAnnounce.h

@@ -43,7 +43,6 @@ namespace aria2 {
 
 class DownloadContext;
 class Option;
-class Logger;
 class BtRuntime;
 class PieceStorage;
 class PeerStorage;
@@ -62,7 +61,6 @@ private:
   AnnounceList announceList_;
   std::string trackerId_;
   const Option* option_;
-  Logger* logger_;
   SharedHandle<Randomizer> randomizer_;
   SharedHandle<BtRuntime> btRuntime_;
   SharedHandle<PieceStorage> pieceStorage_;

+ 32 - 48
src/DefaultBtInteractive.cc

@@ -67,6 +67,7 @@
 #include "Logger.h"
 #include "LogFactory.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "RequestGroup.h"
 #include "RequestGroupMan.h"
 #include "bittorrent_helper.h"
@@ -79,25 +80,23 @@ namespace aria2 {
 DefaultBtInteractive::DefaultBtInteractive
 (const SharedHandle<DownloadContext>& downloadContext,
  const SharedHandle<Peer>& peer)
-  :
-  downloadContext_(downloadContext),
-  peer_(peer),
-  metadataGetMode_(false),
-  localNode_(0),
-  logger_(LogFactory::getInstance()),
-  allowedFastSetSize_(10),
-  haveTimer_(global::wallclock),
-  keepAliveTimer_(global::wallclock),
-  floodingTimer_(global::wallclock),
-  inactiveTimer_(global::wallclock),
-  pexTimer_(global::wallclock),
-  perSecTimer_(global::wallclock),
-  keepAliveInterval_(120),
-  utPexEnabled_(false),
-  dhtEnabled_(false),
-  numReceivedMessage_(0),
-  maxOutstandingRequest_(DEFAULT_MAX_OUTSTANDING_REQUEST),
-  requestGroupMan_(0)
+  : downloadContext_(downloadContext),
+    peer_(peer),
+    metadataGetMode_(false),
+    localNode_(0),
+    allowedFastSetSize_(10),
+    haveTimer_(global::wallclock),
+    keepAliveTimer_(global::wallclock),
+    floodingTimer_(global::wallclock),
+    inactiveTimer_(global::wallclock),
+    pexTimer_(global::wallclock),
+    perSecTimer_(global::wallclock),
+    keepAliveInterval_(120),
+    utPexEnabled_(false),
+    dhtEnabled_(false),
+    numReceivedMessage_(0),
+    maxOutstandingRequest_(DEFAULT_MAX_OUTSTANDING_REQUEST),
+    requestGroupMan_(0)
 {}
 
 DefaultBtInteractive::~DefaultBtInteractive() {}
@@ -139,30 +138,22 @@ BtMessageHandle DefaultBtInteractive::receiveHandshake(bool quickReply) {
     
   if(message->isFastExtensionSupported()) {
     peer_->setFastExtensionEnabled(true);
-    if(logger_->info()) {
-      logger_->info(MSG_FAST_EXTENSION_ENABLED, util::itos(cuid_).c_str());
-    }
+    A2_LOG_INFO(fmt(MSG_FAST_EXTENSION_ENABLED, util::itos(cuid_).c_str()));
   }
   if(message->isExtendedMessagingEnabled()) {
     peer_->setExtendedMessagingEnabled(true);
     if(!utPexEnabled_) {
       extensionMessageRegistry_->removeExtension("ut_pex");
     }
-    if(logger_->info()) {
-      logger_->info(MSG_EXTENDED_MESSAGING_ENABLED, util::itos(cuid_).c_str());
-    }
+    A2_LOG_INFO(fmt(MSG_EXTENDED_MESSAGING_ENABLED, util::itos(cuid_).c_str()));
   }
   if(message->isDHTEnabled()) {
     peer_->setDHTEnabled(true);
-    if(logger_->info()) {
-      logger_->info(MSG_DHT_ENABLED_PEER, util::itos(cuid_).c_str());
-    }
-  }
-  if(logger_->info()) {
-    logger_->info(MSG_RECEIVE_PEER_MESSAGE, util::itos(cuid_).c_str(),
-                 peer_->getIPAddress().c_str(), peer_->getPort(),
-                 message->toString().c_str());
+    A2_LOG_INFO(fmt(MSG_DHT_ENABLED_PEER, util::itos(cuid_).c_str()));
   }
+  A2_LOG_INFO(fmt(MSG_RECEIVE_PEER_MESSAGE, util::itos(cuid_).c_str(),
+                  peer_->getIPAddress().c_str(), peer_->getPort(),
+                  message->toString().c_str()));
   return message;
 }
 
@@ -296,11 +287,10 @@ size_t DefaultBtInteractive::receiveMessages() {
       break;
     }
     ++msgcount;
-    if(logger_->info()) {
-      logger_->info(MSG_RECEIVE_PEER_MESSAGE, util::itos(cuid_).c_str(),
-                   peer_->getIPAddress().c_str(), peer_->getPort(),
-                   message->toString().c_str());
-    }
+    A2_LOG_INFO(fmt(MSG_RECEIVE_PEER_MESSAGE,
+                    util::itos(cuid_).c_str(),
+                    peer_->getIPAddress().c_str(), peer_->getPort(),
+                    message->toString().c_str()));
     message->doReceivedAction();
 
     switch(message->getId()) {
@@ -338,17 +328,13 @@ size_t DefaultBtInteractive::receiveMessages() {
 void DefaultBtInteractive::decideInterest() {
   if(pieceStorage_->hasMissingPiece(peer_)) {
     if(!peer_->amInterested()) {
-      if(logger_->debug()) {
-        logger_->debug(MSG_PEER_INTERESTED, util::itos(cuid_).c_str());
-      }
+      A2_LOG_DEBUG(fmt(MSG_PEER_INTERESTED, util::itos(cuid_).c_str()));
       dispatcher_->
         addMessageToQueue(messageFactory_->createInterestedMessage());
     }
   } else {
     if(peer_->amInterested()) {
-      if(logger_->debug()) {
-        logger_->debug(MSG_PEER_NOT_INTERESTED, util::itos(cuid_).c_str());
-      }
+      A2_LOG_DEBUG(fmt(MSG_PEER_NOT_INTERESTED, util::itos(cuid_).c_str()));
       dispatcher_->
         addMessageToQueue(messageFactory_->createNotInterestedMessage());
     }
@@ -425,10 +411,8 @@ void DefaultBtInteractive::cancelAllPiece() {
       utMetadataRequestTracker_->getAllTrackedIndex();
     for(std::vector<size_t>::const_iterator i = metadataRequests.begin(),
           eoi = metadataRequests.end(); i != eoi; ++i) {
-      if(logger_->debug()) {
-        logger_->debug("Cancel metadata: piece=%lu",
-                      static_cast<unsigned long>(*i));
-      }
+      A2_LOG_DEBUG(fmt("Cancel metadata: piece=%lu",
+                       static_cast<unsigned long>(*i)));
       pieceStorage_->cancelPiece(pieceStorage_->getPiece(*i));
     }
   }

+ 0 - 2
src/DefaultBtInteractive.h

@@ -58,7 +58,6 @@ class PeerConnection;
 class ExtensionMessageFactory;
 class ExtensionMessageRegistry;
 class DHTNode;
-class Logger;
 class RequestGroupMan;
 class UTMetadataRequestFactory;
 class UTMetadataRequestTracker;
@@ -126,7 +125,6 @@ private:
 
   DHTNode* localNode_;
 
-  Logger* logger_;
   size_t allowedFastSetSize_;
   Timer haveTimer_;
   Timer keepAliveTimer_;

+ 41 - 51
src/DefaultBtMessageDispatcher.cc

@@ -55,21 +55,20 @@
 #include "RequestGroupMan.h"
 #include "RequestGroup.h"
 #include "util.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DefaultBtMessageDispatcher::DefaultBtMessageDispatcher():
-  cuid(0),
-  messageFactory_(0),
-  requestGroupMan_(0),
-  requestTimeout_(0),
-  logger_(LogFactory::getInstance()) {}
+DefaultBtMessageDispatcher::DefaultBtMessageDispatcher()
+  : cuid(0),
+    messageFactory_(0),
+    requestGroupMan_(0),
+    requestTimeout_(0)
+{}
 
 DefaultBtMessageDispatcher::~DefaultBtMessageDispatcher()
 {
-  if(logger_->debug()) {
-    logger_->debug("DefaultBtMessageDispatcher::deleted");
-  }
+  A2_LOG_DEBUG("DefaultBtMessageDispatcher::deleted");
 }
 
 void DefaultBtMessageDispatcher::addMessageToQueue
@@ -147,22 +146,19 @@ class AbortOutstandingRequest {
 private:
   SharedHandle<Piece> piece_;
   cuid_t cuid_;
-  Logger* logger_;
 public:
-  AbortOutstandingRequest(const SharedHandle<Piece>& piece, cuid_t cuid):
-    piece_(piece),
-    cuid_(cuid),
-    logger_(LogFactory::getInstance()) {}
+  AbortOutstandingRequest(const SharedHandle<Piece>& piece, cuid_t cuid)
+    : piece_(piece),
+      cuid_(cuid)
+  {}
 
   void operator()(const RequestSlot& slot) const
   {
-    if(logger_->debug()) {
-      logger_->debug(MSG_DELETING_REQUEST_SLOT,
+    A2_LOG_DEBUG(fmt(MSG_DELETING_REQUEST_SLOT,
                      util::itos(cuid_).c_str(),
                      static_cast<unsigned long>(slot.getIndex()),
                      slot.getBegin(),
-                     static_cast<unsigned long>(slot.getBlockIndex()));
-    }
+                     static_cast<unsigned long>(slot.getBlockIndex())));
     piece_->cancelBlock(slot.getBlockIndex());
   }
 };
@@ -196,26 +192,24 @@ private:
   cuid_t cuid_;
   SharedHandle<Peer> peer_;
   SharedHandle<PieceStorage> pieceStorage_;
-  Logger* logger_;
 public:
-  ProcessChokedRequestSlot(cuid_t cuid,
-                           const SharedHandle<Peer>& peer,
-                           const SharedHandle<PieceStorage>& pieceStorage):
-    cuid_(cuid),
-    peer_(peer),
-    pieceStorage_(pieceStorage),
-    logger_(LogFactory::getInstance()) {}
+  ProcessChokedRequestSlot
+  (cuid_t cuid,
+   const SharedHandle<Peer>& peer,
+   const SharedHandle<PieceStorage>& pieceStorage)
+    : cuid_(cuid),
+      peer_(peer),
+      pieceStorage_(pieceStorage)
+  {}
   
   void operator()(const RequestSlot& slot) const
   {
     if(!peer_->isInPeerAllowedIndexSet(slot.getIndex())) {
-      if(logger_->debug()) {
-        logger_->debug(MSG_DELETING_REQUEST_SLOT_CHOKED,
+      A2_LOG_DEBUG(fmt(MSG_DELETING_REQUEST_SLOT_CHOKED,
                        util::itos(cuid_).c_str(),
                        static_cast<unsigned long>(slot.getIndex()),
                        slot.getBegin(),
-                       static_cast<unsigned long>(slot.getBlockIndex()));
-      }
+                       static_cast<unsigned long>(slot.getBlockIndex())));
       SharedHandle<Piece> piece = pieceStorage_->getPiece(slot.getIndex());
       piece->cancelBlock(slot.getBlockIndex());
     }
@@ -270,41 +264,37 @@ private:
   BtMessageDispatcher* messageDispatcher_;
   BtMessageFactory* messageFactory_;
   time_t requestTimeout_;
-  Logger* logger_;
 public:
-  ProcessStaleRequestSlot(cuid_t cuid, const SharedHandle<Peer>& peer,
-                          const SharedHandle<PieceStorage>& pieceStorage,
-                          BtMessageDispatcher* dispatcher,
-                          BtMessageFactory* factory,
-                          time_t requestTimeout):
-    cuid_(cuid),
-    peer_(peer),
-    pieceStorage_(pieceStorage),
-    messageDispatcher_(dispatcher),
-    messageFactory_(factory),
-    requestTimeout_(requestTimeout),
-    logger_(LogFactory::getInstance()) {}
+  ProcessStaleRequestSlot
+  (cuid_t cuid, const SharedHandle<Peer>& peer,
+   const SharedHandle<PieceStorage>& pieceStorage,
+   BtMessageDispatcher* dispatcher,
+   BtMessageFactory* factory,
+   time_t requestTimeout)
+    : cuid_(cuid),
+      peer_(peer),
+      pieceStorage_(pieceStorage),
+      messageDispatcher_(dispatcher),
+      messageFactory_(factory),
+      requestTimeout_(requestTimeout)
+  {}
 
   void operator()(const RequestSlot& slot)
   {
     if(slot.isTimeout(requestTimeout_)) {
-      if(logger_->debug()) {
-        logger_->debug(MSG_DELETING_REQUEST_SLOT_TIMEOUT,
+      A2_LOG_DEBUG(fmt(MSG_DELETING_REQUEST_SLOT_TIMEOUT,
                        util::itos(cuid_).c_str(),
                        static_cast<unsigned long>(slot.getIndex()),
                        slot.getBegin(),
-                       static_cast<unsigned long>(slot.getBlockIndex()));
-      }
+                       static_cast<unsigned long>(slot.getBlockIndex())));
       slot.getPiece()->cancelBlock(slot.getBlockIndex());
       peer_->snubbing(true);
     } else if(slot.getPiece()->hasBlock(slot.getBlockIndex())) {
-      if(logger_->debug()) {
-        logger_->debug(MSG_DELETING_REQUEST_SLOT_ACQUIRED,
+      A2_LOG_DEBUG(fmt(MSG_DELETING_REQUEST_SLOT_ACQUIRED,
                        util::itos(cuid_).c_str(),
                        static_cast<unsigned long>(slot.getIndex()),
                        slot.getBegin(),
-                       static_cast<unsigned long>(slot.getBlockIndex()));
-      }
+                       static_cast<unsigned long>(slot.getBlockIndex())));
       messageDispatcher_->addMessageToQueue
         (messageFactory_->createCancelMessage(slot.getIndex(),
                                               slot.getBegin(),

+ 0 - 2
src/DefaultBtMessageDispatcher.h

@@ -51,7 +51,6 @@ class BtMessage;
 class BtMessageFactory;
 class Peer;
 class Piece;
-class Logger;
 class RequestGroupMan;
 
 class DefaultBtMessageDispatcher : public BtMessageDispatcher {
@@ -66,7 +65,6 @@ private:
   SharedHandle<Peer> peer_;
   RequestGroupMan* requestGroupMan_;
   time_t requestTimeout_;
-  Logger* logger_;
 public:
   DefaultBtMessageDispatcher();
 

+ 0 - 1
src/DefaultBtMessageReceiver.h

@@ -45,7 +45,6 @@ class Peer;
 class PeerConnection;
 class BtMessageDispatcher;
 class BtMessageFactory;
-class Logger;
 
 class DefaultBtMessageReceiver : public BtMessageReceiver {
 private:

+ 13 - 15
src/DefaultBtProgressInfoFile.cc

@@ -52,6 +52,7 @@
 #include "a2io.h"
 #include "DownloadFailureException.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "array_fun.h"
 #include "DownloadContext.h"
 #ifdef ENABLE_BITTORRENT
@@ -78,12 +79,11 @@ std::string createFilename
 DefaultBtProgressInfoFile::DefaultBtProgressInfoFile
 (const SharedHandle<DownloadContext>& dctx,
  const PieceStorageHandle& pieceStorage,
- const Option* option):
-  dctx_(dctx),
-  pieceStorage_(pieceStorage),
-  option_(option),
-  logger_(LogFactory::getInstance()),
-  filename_(createFilename(dctx_, getSuffix()))
+ const Option* option)
+  : dctx_(dctx),
+    pieceStorage_(pieceStorage),
+    option_(option),
+    filename_(createFilename(dctx_, getSuffix()))
 {}
 
 DefaultBtProgressInfoFile::~DefaultBtProgressInfoFile() {}
@@ -105,7 +105,7 @@ bool DefaultBtProgressInfoFile::isTorrentDownload()
 // Since version 0001, Integers are saved in binary form, network byte order.
 void DefaultBtProgressInfoFile::save()
 {
-  logger_->info(MSG_SAVING_SEGMENT_FILE, filename_.c_str());
+  A2_LOG_INFO(fmt(MSG_SAVING_SEGMENT_FILE, filename_.c_str()));
   std::string filenameTemp = filename_+"__temp";
   {
     std::ofstream o(filenameTemp.c_str(), std::ios::out|std::ios::binary);
@@ -201,7 +201,7 @@ void DefaultBtProgressInfoFile::save()
       throw DL_ABORT_EX
         (StringFormat(EX_SEGMENT_FILE_WRITE, filename_.c_str()).str());
     }
-    logger_->info(MSG_SAVED_SEGMENT_FILE);
+    A2_LOG_INFO(MSG_SAVED_SEGMENT_FILE);
   }
   if(!File(filenameTemp).renameTo(filename_)) {
     throw DL_ABORT_EX
@@ -225,7 +225,7 @@ void DefaultBtProgressInfoFile::save()
 // 2) network byte order if version == 0001
 void DefaultBtProgressInfoFile::load() 
 {
-  logger_->info(MSG_LOADING_SEGMENT_FILE, filename_.c_str());
+  A2_LOG_INFO(fmt(MSG_LOADING_SEGMENT_FILE, filename_.c_str()));
   std::ifstream in(filename_.c_str(), std::ios::in|std::ios::binary);
   if(!in) {
     throw DL_ABORT_EX
@@ -251,9 +251,7 @@ void DefaultBtProgressInfoFile::load()
   bool infoHashCheckEnabled = false;
   if(extension[3]&1 && isTorrentDownload()) {
     infoHashCheckEnabled = true;
-    if(logger_->debug()) {
-      logger_->debug("InfoHash checking enabled.");
-    }
+    A2_LOG_DEBUG("InfoHash checking enabled.");
   }
 
   uint32_t infoHashLength;
@@ -422,7 +420,7 @@ void DefaultBtProgressInfoFile::load()
     util::convertBitfield(&dest, &src);
     pieceStorage_->setBitfield(dest.getBitfield(), dest.getBitfieldLength());
   }
-  logger_->info(MSG_LOADED_SEGMENT_FILE);
+  A2_LOG_INFO(MSG_LOADED_SEGMENT_FILE);
 }
 
 void DefaultBtProgressInfoFile::removeFile()
@@ -437,10 +435,10 @@ bool DefaultBtProgressInfoFile::exists()
 {
   File f(filename_);
   if(f.isFile()) {
-    logger_->info(MSG_SEGMENT_FILE_EXISTS, filename_.c_str());
+    A2_LOG_INFO(fmt(MSG_SEGMENT_FILE_EXISTS, filename_.c_str()));
     return true;
   } else {
-    logger_->info(MSG_SEGMENT_FILE_DOES_NOT_EXIST, filename_.c_str());
+    A2_LOG_INFO(fmt(MSG_SEGMENT_FILE_DOES_NOT_EXIST, filename_.c_str()));
     return false;
   }
 }

+ 0 - 2
src/DefaultBtProgressInfoFile.h

@@ -43,7 +43,6 @@ class DownloadContext;
 class PieceStorage;
 class PeerStorage;
 class BtRuntime;
-class Logger;
 class Option;
 
 class DefaultBtProgressInfoFile : public BtProgressInfoFile {
@@ -55,7 +54,6 @@ private:
   SharedHandle<BtRuntime> btRuntime_;
 #endif // ENABLE_BITTORRENT
   const Option* option_;
-  Logger* logger_;
   std::string filename_;
 
   bool isTorrentDownload();

+ 18 - 31
src/DefaultBtRequestFactory.cc

@@ -47,25 +47,16 @@
 #include "a2functional.h"
 #include "SimpleRandomizer.h"
 #include "array_fun.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-DefaultBtRequestFactory::DefaultBtRequestFactory():
-  dispatcher_(0),
-  messageFactory_(0),
-  logger_(LogFactory::getInstance())
-{
-  if(logger_->debug()) {
-    logger_->debug("DefaultBtRequestFactory::instantiated");
-  }
-}
+DefaultBtRequestFactory::DefaultBtRequestFactory()
+  : dispatcher_(0),
+    messageFactory_(0)
+{}
 
-DefaultBtRequestFactory::~DefaultBtRequestFactory()
-{
-  if(logger_->debug()) {
-    logger_->debug("DefaultBtRequestFactory::deleted");
-  }
-}
+DefaultBtRequestFactory::~DefaultBtRequestFactory() {}
 
 void DefaultBtRequestFactory::addTargetPiece(const SharedHandle<Piece>& piece)
 {
@@ -176,14 +167,12 @@ void DefaultBtRequestFactory::createRequestMessages
       getnum -= blockIndexes.size();
       for(std::vector<size_t>::const_iterator i = blockIndexes.begin(),
             eoi2 = blockIndexes.end(); i != eoi2; ++i) {
-        if(logger_->debug()) {
-          logger_->debug
-            ("Creating RequestMessage index=%lu, begin=%u,"
-             " blockIndex=%lu",
-             static_cast<unsigned long>(piece->getIndex()),
-             static_cast<unsigned int>((*i)*piece->getBlockLength()),
-             static_cast<unsigned long>(*i));
-        }
+        A2_LOG_DEBUG
+          (fmt("Creating RequestMessage index=%lu, begin=%u,"
+               " blockIndex=%lu",
+               static_cast<unsigned long>(piece->getIndex()),
+               static_cast<unsigned int>((*i)*piece->getBlockLength()),
+               static_cast<unsigned long>(*i)));
         requests.push_back
           (messageFactory_->createRequestMessage(piece, *i));
       }
@@ -222,14 +211,12 @@ void DefaultBtRequestFactory::createRequestMessagesOnEndGame
       const size_t& blockIndex = *bitr;
       if(!dispatcher_->isOutstandingRequest(piece->getIndex(),
                                            blockIndex)) {
-        if(logger_->debug()) {
-          logger_->debug
-            ("Creating RequestMessage index=%lu, begin=%u,"
-             " blockIndex=%lu",
-             static_cast<unsigned long>(piece->getIndex()),
-             static_cast<unsigned int>(blockIndex*piece->getBlockLength()),
-             static_cast<unsigned long>(blockIndex));
-        }
+        A2_LOG_DEBUG
+          (fmt("Creating RequestMessage index=%lu, begin=%u,"
+               " blockIndex=%lu",
+               static_cast<unsigned long>(piece->getIndex()),
+               static_cast<unsigned int>(blockIndex*piece->getBlockLength()),
+               static_cast<unsigned long>(blockIndex)));
         requests.push_back(messageFactory_->createRequestMessage
                            (piece, blockIndex));
       }

+ 0 - 2
src/DefaultBtRequestFactory.h

@@ -48,7 +48,6 @@ class Peer;
 class BtMessageDispatcher;
 class BtMessageFactory;
 class Piece;
-class Logger;
 
 class DefaultBtRequestFactory : public BtRequestFactory {
 private:
@@ -57,7 +56,6 @@ private:
   BtMessageDispatcher* dispatcher_;
   BtMessageFactory* messageFactory_;
   std::deque<SharedHandle<Piece> > pieces_;
-  Logger* logger_;
 public:
   DefaultBtRequestFactory();
 

+ 9 - 11
src/DefaultExtensionMessageFactory.cc

@@ -37,8 +37,6 @@
 #include "DlAbortEx.h"
 #include "HandshakeExtensionMessage.h"
 #include "UTPexExtensionMessage.h"
-#include "LogFactory.h"
-#include "Logger.h"
 #include "StringFormat.h"
 #include "PeerStorage.h"
 #include "ExtensionMessageRegistry.h"
@@ -56,18 +54,18 @@
 
 namespace aria2 {
 
-DefaultExtensionMessageFactory::DefaultExtensionMessageFactory():
-  messageFactory_(0),
-  dispatcher_(0),
-  tracker_(0),
-  logger_(LogFactory::getInstance()) {}
+DefaultExtensionMessageFactory::DefaultExtensionMessageFactory()
+  : messageFactory_(0),
+    dispatcher_(0),
+    tracker_(0)
+{}
 
 DefaultExtensionMessageFactory::DefaultExtensionMessageFactory
 (const SharedHandle<Peer>& peer,
- const SharedHandle<ExtensionMessageRegistry>& registry):
-  peer_(peer),
-  registry_(registry),
-  logger_(LogFactory::getInstance()) {}
+ const SharedHandle<ExtensionMessageRegistry>& registry)
+  : peer_(peer),
+    registry_(registry)
+{}
 
 DefaultExtensionMessageFactory::~DefaultExtensionMessageFactory() {}
 

+ 0 - 4
src/DefaultExtensionMessageFactory.h

@@ -41,7 +41,6 @@ namespace aria2 {
 
 class PeerStorage;
 class Peer;
-class Logger;
 class ExtensionMessageRegistry;
 class DownloadContext;
 class BtMessageFactory;
@@ -63,9 +62,6 @@ private:
   BtMessageDispatcher* dispatcher_;
 
   UTMetadataRequestTracker* tracker_;
-
-  Logger* logger_;
-
 public:
   DefaultExtensionMessageFactory();
 

+ 16 - 25
src/DefaultPeerStorage.cc

@@ -46,6 +46,7 @@
 #include "PieceStorage.h"
 #include "wallclock.h"
 #include "a2functional.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -53,13 +54,12 @@ namespace {
 const int MAX_PEER_LIST_SIZE = 1024;
 } // namespace
 
-DefaultPeerStorage::DefaultPeerStorage():
-  logger_(LogFactory::getInstance()),
-  removedPeerSessionDownloadLength_(0),
-  removedPeerSessionUploadLength_(0),
-  seederStateChoke_(new BtSeederStateChoke()),
-  leecherStateChoke_(new BtLeecherStateChoke()),
-  lastTransferStatMapUpdated_(0)
+DefaultPeerStorage::DefaultPeerStorage()
+  : removedPeerSessionDownloadLength_(0),
+    removedPeerSessionUploadLength_(0),
+    seederStateChoke_(new BtSeederStateChoke()),
+    leecherStateChoke_(new BtLeecherStateChoke()),
+    lastTransferStatMapUpdated_(0)
 {}
 
 DefaultPeerStorage::~DefaultPeerStorage()
@@ -103,10 +103,9 @@ size_t calculateMaxPeerListSize(const SharedHandle<BtRuntime>& btRuntime)
 
 bool DefaultPeerStorage::addPeer(const SharedHandle<Peer>& peer) {
   if(isPeerAlreadyAdded(peer)) {
-    if(logger_->debug()) {
-      logger_->debug("Adding %s:%u is rejected because it has been already"
-                    " added.", peer->getIPAddress().c_str(), peer->getPort());
-    }
+    A2_LOG_DEBUG(fmt("Adding %s:%u is rejected because it has been already"
+                     " added.",
+                     peer->getIPAddress().c_str(), peer->getPort()));
     return false;
   }
   size_t maxPeerListSize = calculateMaxPeerListSize(btRuntime_);
@@ -123,10 +122,8 @@ void DefaultPeerStorage::addPeer(const std::vector<SharedHandle<Peer> >& peers)
         eoi = peers.end(); itr != eoi; ++itr) {
     const SharedHandle<Peer>& peer = *itr;
     if(addPeer(peer)) {
-      if(logger_->debug()) {
-        logger_->debug(MSG_ADDING_PEER,
-                       peer->getIPAddress().c_str(), peer->getPort());
-      }
+      A2_LOG_DEBUG(fmt(MSG_ADDING_PEER,
+                       peer->getIPAddress().c_str(), peer->getPort()));
     }
   }  
 }
@@ -241,9 +238,7 @@ TransferStat DefaultPeerStorage::calculateStat()
 {
   TransferStat stat;
   if(lastTransferStatMapUpdated_.differenceInMillis(global::wallclock) >= 250) {
-    if(logger_->debug()) {
-      logger_->debug("Updating TransferStat of PeerStorage");
-    }
+    A2_LOG_DEBUG("Updating TransferStat of PeerStorage");
     lastTransferStatMapUpdated_ = global::wallclock;
     peerTransferStatMap_.clear();
     std::vector<SharedHandle<Peer> > activePeers;
@@ -272,9 +267,7 @@ TransferStat DefaultPeerStorage::calculateStat()
 
 void DefaultPeerStorage::updateTransferStatFor(const SharedHandle<Peer>& peer)
 {
-  if(logger_->debug()) {
-    logger_->debug("Updating TransferStat for peer %s", peer->getID().c_str());
-  }
+  A2_LOG_DEBUG(fmt("Updating TransferStat for peer %s", peer->getID().c_str()));
   std::map<std::string, TransferStat>::iterator itr =
     peerTransferStatMap_.find(peer->getID());
   if(itr == peerTransferStatMap_.end()) {
@@ -340,10 +333,8 @@ void DefaultPeerStorage::returnPeer(const SharedHandle<Peer>& peer)
   std::deque<SharedHandle<Peer> >::iterator itr =
     std::find_if(peers_.begin(), peers_.end(), derefEqual(peer));
   if(itr == peers_.end()) {
-    if(logger_->debug()) {
-      logger_->debug("Cannot find peer %s:%u in PeerStorage.",
-                    peer->getIPAddress().c_str(), peer->getPort());
-    }
+    A2_LOG_DEBUG(fmt("Cannot find peer %s:%u in PeerStorage.",
+                     peer->getIPAddress().c_str(), peer->getPort()));
   } else {
     peers_.erase(itr);
 

+ 0 - 2
src/DefaultPeerStorage.h

@@ -43,7 +43,6 @@
 
 namespace aria2 {
 
-class Logger;
 class BtRuntime;
 class BtSeederStateChoke;
 class BtLeecherStateChoke;
@@ -55,7 +54,6 @@ private:
   SharedHandle<PieceStorage> pieceStorage_;
   std::deque<SharedHandle<Peer> > peers_;
   std::deque<SharedHandle<Peer> > droppedPeers_;
-  Logger* logger_;
   uint64_t removedPeerSessionDownloadLength_;
   uint64_t removedPeerSessionUploadLength_;
 

+ 21 - 28
src/DefaultPieceStorage.cc

@@ -55,6 +55,7 @@
 #include "a2functional.h"
 #include "Option.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "RarestPieceSelector.h"
 #include "array_fun.h"
 #include "PieceStatMan.h"
@@ -67,20 +68,20 @@
 namespace aria2 {
 
 DefaultPieceStorage::DefaultPieceStorage
-(const SharedHandle<DownloadContext>& downloadContext, const Option* option):
-  downloadContext_(downloadContext),
-  bitfieldMan_(new BitfieldMan(downloadContext->getPieceLength(),
-                               downloadContext->getTotalLength())),
-  diskWriterFactory_(new DefaultDiskWriterFactory()),
-  endGame_(false),
-  endGamePieceNum_(END_GAME_PIECE_NUM),
-  logger_(LogFactory::getInstance()),
-  option_(option),
-  pieceStatMan_(new PieceStatMan(downloadContext->getNumPieces(), true)),
-  pieceSelector_(new RarestPieceSelector(pieceStatMan_))
+(const SharedHandle<DownloadContext>& downloadContext, const Option* option)
+ : downloadContext_(downloadContext),
+   bitfieldMan_(new BitfieldMan(downloadContext->getPieceLength(),
+                                downloadContext->getTotalLength())),
+   diskWriterFactory_(new DefaultDiskWriterFactory()),
+   endGame_(false),
+   endGamePieceNum_(END_GAME_PIECE_NUM),
+   option_(option),
+   pieceStatMan_(new PieceStatMan(downloadContext->getNumPieces(), true)),
+   pieceSelector_(new RarestPieceSelector(pieceStatMan_))
 {}
 
-DefaultPieceStorage::~DefaultPieceStorage() {
+DefaultPieceStorage::~DefaultPieceStorage()
+{
   delete bitfieldMan_;
 }
 
@@ -130,10 +131,8 @@ void DefaultPieceStorage::addUsedPiece(const SharedHandle<Piece>& piece)
     std::lower_bound(usedPieces_.begin(), usedPieces_.end(), piece,
                      DerefLess<SharedHandle<Piece> >());
   usedPieces_.insert(i, piece);
-  if(logger_->debug()) {
-    logger_->debug("usedPieces_.size()=%lu",
-                   static_cast<unsigned long>(usedPieces_.size()));
-  }
+  A2_LOG_DEBUG(fmt("usedPieces_.size()=%lu",
+                   static_cast<unsigned long>(usedPieces_.size())));
 }
 
 SharedHandle<Piece> DefaultPieceStorage::findUsedPiece(size_t index) const
@@ -428,12 +427,12 @@ void DefaultPieceStorage::completePiece(const SharedHandle<Piece>& piece)
   if(downloadFinished()) {
     downloadContext_->resetDownloadStopTime();
     if(isSelectiveDownloadingMode()) {
-      logger_->notice(MSG_SELECTIVE_DOWNLOAD_COMPLETED);
+      A2_LOG_NOTICE(MSG_SELECTIVE_DOWNLOAD_COMPLETED);
       // following line was commented out in order to stop sending request
       // message after user-specified files were downloaded.
       //finishSelectiveDownloadingMode();
     } else {
-      logger_->info(MSG_DOWNLOAD_COMPLETED);
+      A2_LOG_INFO(MSG_DOWNLOAD_COMPLETED);
     }
 #ifdef ENABLE_BITTORRENT
     if(downloadContext_->hasAttribute(bittorrent::BITTORRENT)) {
@@ -561,9 +560,7 @@ bool DefaultPieceStorage::allDownloadFinished()
 void DefaultPieceStorage::initStorage()
 {
   if(downloadContext_->getFileEntries().size() == 1) {
-    if(logger_->debug()) {
-      logger_->debug("Instantiating DirectDiskAdaptor");
-    }
+    A2_LOG_DEBUG("Instantiating DirectDiskAdaptor");
     DirectDiskAdaptorHandle directDiskAdaptor(new DirectDiskAdaptor());
     directDiskAdaptor->setTotalLength(downloadContext_->getTotalLength());
     directDiskAdaptor->setFileEntries
@@ -579,9 +576,7 @@ void DefaultPieceStorage::initStorage()
     directDiskAdaptor->setDiskWriter(writer);
     diskAdaptor_ = directDiskAdaptor;
   } else {
-    if(logger_->debug()) {
-      logger_->debug("Instantiating MultiDiskAdaptor");
-    }
+    A2_LOG_DEBUG("Instantiating MultiDiskAdaptor");
     MultiDiskAdaptorHandle multiDiskAdaptor(new MultiDiskAdaptor());
     multiDiskAdaptor->setFileEntries(downloadContext_->getFileEntries().begin(),
                                      downloadContext_->getFileEntries().end());
@@ -671,10 +666,8 @@ void DefaultPieceStorage::removeAdvertisedPiece(time_t elapsed)
   std::deque<HaveEntry>::iterator itr =
     std::find_if(haves_.begin(), haves_.end(), FindElapsedHave(elapsed));
   if(itr != haves_.end()) {
-    if(logger_->debug()) {
-      logger_->debug(MSG_REMOVED_HAVE_ENTRY,
-                     static_cast<unsigned long>(haves_.end()-itr));
-    }
+    A2_LOG_DEBUG(fmt(MSG_REMOVED_HAVE_ENTRY,
+                     static_cast<unsigned long>(haves_.end()-itr)));
     haves_.erase(itr, haves_.end());
   }
 }

+ 0 - 2
src/DefaultPieceStorage.h

@@ -43,7 +43,6 @@ namespace aria2 {
 
 class DownloadContext;
 class BitfieldMan;
-class Logger;
 class Option;
 class DiskWriterFactory;
 class FileEntry;
@@ -80,7 +79,6 @@ private:
 
   bool endGame_;
   size_t endGamePieceNum_;
-  Logger* logger_;
   const Option* option_;
   std::deque<HaveEntry> haves_;
 

+ 3 - 5
src/DiskAdaptor.cc

@@ -34,14 +34,12 @@
 /* copyright --> */
 #include "DiskAdaptor.h"
 #include "FileEntry.h"
-#include "LogFactory.h"
-#include "Logger.h"
 
 namespace aria2 {
 
-DiskAdaptor::DiskAdaptor():
-  fallocate_(false),
-  logger_(LogFactory::getInstance()) {}
+DiskAdaptor::DiskAdaptor()
+  : fallocate_(false)
+{}
 
 DiskAdaptor::~DiskAdaptor() {}
 

+ 0 - 8
src/DiskAdaptor.h

@@ -45,7 +45,6 @@
 namespace aria2 {
 
 class FileEntry;
-class Logger;
 class FileAllocationIterator;
 
 class DiskAdaptor:public BinaryStream {
@@ -53,13 +52,6 @@ private:
   std::vector<SharedHandle<FileEntry> > fileEntries_;
 
   bool fallocate_;
-
-  Logger* logger_;
-protected:
-  Logger* getLogger() const
-  {
-    return logger_;
-  }
 public:
   DiskAdaptor();
   virtual ~DiskAdaptor();

+ 12 - 15
src/DownloadCommand.cc

@@ -45,6 +45,7 @@
 #include "SegmentMan.h"
 #include "Segment.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "ChecksumCheckIntegrityEntry.h"
 #include "PieceStorage.h"
 #include "CheckIntegrityCommand.h"
@@ -56,6 +57,7 @@
 #include "message.h"
 #include "prefs.h"
 #include "StringFormat.h"
+#include "fmt.h"
 #include "RequestGroupMan.h"
 #include "wallclock.h"
 #include "SinkStreamFilter.h"
@@ -197,10 +199,8 @@ bool DownloadCommand::executeInternal() {
       // If segment->getLength() == 0, the server doesn't provide
       // content length, but the client detected that download
       // completed.
-      if(getLogger()->info()) {
-        getLogger()->info(MSG_SEGMENT_DOWNLOAD_COMPLETED,
-                          util::itos(getCuid()).c_str());
-      }
+      A2_LOG_INFO(fmt(MSG_SEGMENT_DOWNLOAD_COMPLETED,
+                      util::itos(getCuid()).c_str()));
 #ifdef ENABLE_MESSAGE_DIGEST
 
       {
@@ -213,11 +213,8 @@ bool DownloadCommand::executeInternal() {
               !getDownloadContext()->hasAttribute(bittorrent::BITTORRENT)) &&
 #endif // ENABLE_BITTORRENT
              segment->isHashCalculated()) {
-            if(getLogger()->debug()) {
-              getLogger()->debug
-                ("Hash is available! index=%lu",
-                 static_cast<unsigned long>(segment->getIndex()));
-            }
+            A2_LOG_DEBUG(fmt("Hash is available! index=%lu",
+                             static_cast<unsigned long>(segment->getIndex())));
             validatePieceHash
               (segment, expectedPieceHash, segment->getHashString());
           } else {
@@ -340,14 +337,14 @@ void DownloadCommand::validatePieceHash(const SharedHandle<Segment>& segment,
                                         const std::string& actualPieceHash)
 {
   if(actualPieceHash == expectedPieceHash) {
-    getLogger()->info(MSG_GOOD_CHUNK_CHECKSUM, actualPieceHash.c_str());
+    A2_LOG_INFO(fmt(MSG_GOOD_CHUNK_CHECKSUM, actualPieceHash.c_str()));
     getSegmentMan()->completeSegment(getCuid(), segment);
   } else {
-    getLogger()->info(EX_INVALID_CHUNK_CHECKSUM,
-                      static_cast<unsigned long>(segment->getIndex()),
-                      util::itos(segment->getPosition(), true).c_str(),
-                      expectedPieceHash.c_str(),
-                      actualPieceHash.c_str());
+    A2_LOG_INFO(fmt(EX_INVALID_CHUNK_CHECKSUM,
+                    static_cast<unsigned long>(segment->getIndex()),
+                    util::itos(segment->getPosition(), true).c_str(),
+                    expectedPieceHash.c_str(),
+                    actualPieceHash.c_str()));
     segment->clear();
     getSegmentMan()->cancelSegment(getCuid());
     throw DL_RETRY_EX

+ 18 - 22
src/DownloadEngine.cc

@@ -64,6 +64,7 @@
 #include "CheckIntegrityEntry.h"
 #include "BtProgressInfoFile.h"
 #include "DownloadContext.h"
+#include "fmt.h"
 #ifdef ENABLE_BITTORRENT
 # include "BtRegistry.h"
 #endif // ENABLE_BITTORRENT
@@ -85,17 +86,16 @@ volatile sig_atomic_t globalHaltRequested = 0;
 
 } // namespace global
 
-DownloadEngine::DownloadEngine(const SharedHandle<EventPoll>& eventPoll):
-  eventPoll_(eventPoll),
-  logger_(LogFactory::getInstance()),
-  haltRequested_(false),
-  noWait_(false),
-  refreshInterval_(DEFAULT_REFRESH_INTERVAL),
-  cookieStorage_(new CookieStorage()),
+DownloadEngine::DownloadEngine(const SharedHandle<EventPoll>& eventPoll)
+  : eventPoll_(eventPoll),
+    haltRequested_(false),
+    noWait_(false),
+    refreshInterval_(DEFAULT_REFRESH_INTERVAL),
+    cookieStorage_(new CookieStorage()),
 #ifdef ENABLE_BITTORRENT
-  btRegistry_(new BtRegistry()),
+    btRegistry_(new BtRegistry()),
 #endif // ENABLE_BITTORRENT
-  dnsCache_(new DNSCache())
+    dnsCache_(new DNSCache())
 {
   unsigned char sessionId[20];
   util::generateRandomKey(sessionId);
@@ -217,14 +217,14 @@ void DownloadEngine::afterEachIteration()
 {
   requestGroupMan_->calculateStat();
   if(global::globalHaltRequested == 1) {
-    logger_->notice(_("Shutdown sequence commencing..."
-                      " Press Ctrl-C again for emergency shutdown."));
+    A2_LOG_NOTICE(_("Shutdown sequence commencing..."
+                    " Press Ctrl-C again for emergency shutdown."));
     requestHalt();
     global::globalHaltRequested = 2;
     setNoWait(true);
     setRefreshInterval(0);
   } else if(global::globalHaltRequested == 3) {
-    logger_->notice(_("Emergency shutdown sequence commencing..."));
+    A2_LOG_NOTICE(_("Emergency shutdown sequence commencing..."));
     requestForceHalt();
     global::globalHaltRequested = 4;
     setNoWait(true);
@@ -276,15 +276,13 @@ void DownloadEngine::addRoutineCommand(Command* command)
 void DownloadEngine::poolSocket(const std::string& key,
                                 const SocketPoolEntry& entry)
 {
-  logger_->info("Pool socket for %s", key.c_str());
+  A2_LOG_INFO(fmt("Pool socket for %s", key.c_str()));
   std::multimap<std::string, SocketPoolEntry>::value_type p(key, entry);
   socketPool_.insert(p);
 
   if(lastSocketPoolScan_.difference(global::wallclock) >= 60) {
     std::multimap<std::string, SocketPoolEntry> newPool;
-    if(logger_->debug()) {
-      logger_->debug("Scaning SocketPool and erasing timed out entry.");
-    }
+    A2_LOG_DEBUG("Scaning SocketPool and erasing timed out entry.");
     lastSocketPoolScan_ = global::wallclock;
     for(std::multimap<std::string, SocketPoolEntry>::iterator i =
           socketPool_.begin(), eoi = socketPool_.end(); i != eoi; ++i) {
@@ -292,11 +290,9 @@ void DownloadEngine::poolSocket(const std::string& key,
         newPool.insert(*i);
       }
     }
-    if(logger_->debug()) {
-      logger_->debug
-        ("%lu entries removed.",
-         static_cast<unsigned long>(socketPool_.size()-newPool.size()));
-    }
+    A2_LOG_DEBUG(fmt("%lu entries removed.",
+                     static_cast<unsigned long>
+                     (socketPool_.size()-newPool.size())));
     socketPool_ = newPool;
   }
 }
@@ -402,7 +398,7 @@ DownloadEngine::findSocketPoolEntry(const std::string& key)
     // We assume that if socket is readable it means peer shutdowns
     // connection and the socket will receive EOF. So skip it.
     if(!e.isTimeout() && !e.getSocket()->isReadable(0)) {
-      logger_->info("Found socket for %s", key.c_str());
+      A2_LOG_INFO(fmt("Found socket for %s", key.c_str()));
       return i;
     }
   }

+ 0 - 3
src/DownloadEngine.h

@@ -56,7 +56,6 @@
 
 namespace aria2 {
 
-class Logger;
 class Option;
 class RequestGroupMan;
 class StatCalc;
@@ -78,8 +77,6 @@ private:
 
   SharedHandle<EventPoll> eventPoll_;
 
-  Logger* logger_;
-  
   SharedHandle<StatCalc> statCalc_;
 
   bool haltRequested_;

+ 1 - 4
src/DownloadEngineFactory.cc

@@ -36,8 +36,6 @@
 
 #include <algorithm>
 
-#include "LogFactory.h"
-#include "Logger.h"
 #include "Option.h"
 #include "RequestGroup.h"
 #include "DownloadEngine.h"
@@ -80,8 +78,7 @@
 
 namespace aria2 {
 
-DownloadEngineFactory::DownloadEngineFactory():
-  logger_(LogFactory::getInstance()) {}
+DownloadEngineFactory::DownloadEngineFactory() {}
 
 DownloadEngineHandle
 DownloadEngineFactory::newDownloadEngine

+ 0 - 3
src/DownloadEngineFactory.h

@@ -43,14 +43,11 @@
 
 namespace aria2 {
 
-class Logger;
 class Option;
 class RequestGroup;
 class DownloadEngine;
 
 class DownloadEngineFactory {
-private:
-  Logger* logger_;
 public:
   DownloadEngineFactory();
 

+ 1 - 3
src/DownloadHandler.cc

@@ -33,15 +33,13 @@
  */
 /* copyright --> */
 #include "DownloadHandler.h"
-#include "LogFactory.h"
-#include "Logger.h"
 #include "RequestGroup.h"
 #include "RequestGroupCriteria.h"
 #include "DownloadContext.h"
 
 namespace aria2 {
 
-DownloadHandler::DownloadHandler():logger_(LogFactory::getInstance()) {}
+DownloadHandler::DownloadHandler() {}
 
 DownloadHandler::~DownloadHandler() {}
 

+ 0 - 8
src/DownloadHandler.h

@@ -44,20 +44,12 @@
 namespace aria2 {
 
 class RequestGroup;
-class Logger;
 class RequestGroupCriteria;
 
 class DownloadHandler
 {
 private:
   SharedHandle<RequestGroupCriteria> criteria_;
-
-  Logger* logger_;
-protected:
-  Logger* getLogger() const
-  {
-    return logger_;
-  }
 public:
   DownloadHandler();
 

+ 16 - 22
src/EpollEventPoll.cc

@@ -44,6 +44,7 @@
 #include "Logger.h"
 #include "util.h"
 #include "a2functional.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -80,10 +81,9 @@ struct epoll_event EpollEventPoll::KSocketEntry::getEvents()
   return epEvent;
 }
 
-EpollEventPoll::EpollEventPoll():
-  epEventsSize_(EPOLL_EVENTS_MAX),
-  epEvents_(new struct epoll_event[epEventsSize_]),
-  logger_(LogFactory::getInstance())
+EpollEventPoll::EpollEventPoll()
+  : epEventsSize_(EPOLL_EVENTS_MAX),
+    epEvents_(new struct epoll_event[epEventsSize_])
 {
   epfd_ = epoll_create(EPOLL_EVENTS_MAX);
 }
@@ -95,9 +95,10 @@ EpollEventPoll::~EpollEventPoll()
     while((r = close(epfd_)) == -1 && errno == EINTR);
     int errNum = errno;
     if(r == -1) {
-      logger_->error("Error occurred while closing epoll file descriptor"
-                     " %d: %s",
-                     epfd_, util::safeStrerror(errNum).c_str());
+      A2_LOG_ERROR(fmt("Error occurred while closing epoll file descriptor"
+                       " %d: %s",
+                       epfd_,
+                       util::safeStrerror(errNum).c_str()));
     }
   }
   delete [] epEvents_;
@@ -201,10 +202,9 @@ bool EpollEventPoll::addEvents(sock_t socket,
     errNum = errno;
   }
   if(r == -1) {
-    if(logger_->debug()) {
-      logger_->debug("Failed to add socket event %d:%s",
-                     socket, util::safeStrerror(errNum).c_str());
-    }
+    A2_LOG_DEBUG(fmt("Failed to add socket event %d:%s",
+                     socket,
+                     util::safeStrerror(errNum).c_str()));
     return false;
   } else {
     return true;
@@ -253,25 +253,19 @@ bool EpollEventPoll::deleteEvents(sock_t socket,
       r = epoll_ctl(epfd_, EPOLL_CTL_MOD, (*i)->getSocket(), &epEvent);
       errNum = r;
       if(r == -1) {
-        if(logger_->debug()) {
-          logger_->debug("Failed to delete socket event, but may be ignored:%s",
-                         util::safeStrerror(errNum).c_str());
-        }
+        A2_LOG_DEBUG(fmt("Failed to delete socket event, but may be ignored:%s",
+                         util::safeStrerror(errNum).c_str()));
       }
     }
     if(r == -1) {
-      if(logger_->debug()) {
-        logger_->debug("Failed to delete socket event:%s",
-                       util::safeStrerror(errNum).c_str());
-      }
+      A2_LOG_DEBUG(fmt("Failed to delete socket event:%s",
+                       util::safeStrerror(errNum).c_str()));
       return false;
     } else {
       return true;
     }
   } else {
-    if(logger_->debug()) {
-      logger_->debug("Socket %d is not found in SocketEntries.", socket);
-    }
+    A2_LOG_DEBUG(fmt("Socket %d is not found in SocketEntries.", socket));
     return false;
   }
 }

+ 0 - 4
src/EpollEventPoll.h

@@ -48,8 +48,6 @@
 
 namespace aria2 {
 
-class Logger;
-
 class EpollEventPoll : public EventPoll {
 private:
   class KSocketEntry;
@@ -84,8 +82,6 @@ private:
 
   static const size_t EPOLL_EVENTS_MAX = 1024;
 
-  Logger* logger_;
-
   bool addEvents(sock_t socket, const KEvent& event);
 
   bool deleteEvents(sock_t socket, const KEvent& event);

+ 14 - 25
src/FeedbackURISelector.cc

@@ -45,13 +45,14 @@
 #include "LogFactory.h"
 #include "a2algo.h"
 #include "uri.h"
+#include "fmt.h"
 
 namespace aria2 {
 
 FeedbackURISelector::FeedbackURISelector
-(const SharedHandle<ServerStatMan>& serverStatMan):
-  serverStatMan_(serverStatMan),
-  logger_(LogFactory::getInstance()) {}
+(const SharedHandle<ServerStatMan>& serverStatMan)
+  : serverStatMan_(serverStatMan)
+{}
 
 FeedbackURISelector::~FeedbackURISelector() {}
 
@@ -71,12 +72,12 @@ std::string FeedbackURISelector::select
 (FileEntry* fileEntry,
  const std::vector<std::pair<size_t, std::string> >& usedHosts)
 {
-  if(logger_->debug()) {
+  if(A2_LOG_DEBUG_ENABLED) {
     for(std::vector<std::pair<size_t, std::string> >::const_iterator i =
           usedHosts.begin(), eoi = usedHosts.end(); i != eoi; ++i) {
-      logger_->debug("UsedHost=%lu, %s",
-                     static_cast<unsigned long>((*i).first),
-                     (*i).second.c_str());
+      A2_LOG_DEBUG(fmt("UsedHost=%lu, %s",
+                       static_cast<unsigned long>((*i).first),
+                       (*i).second.c_str()));
     }
   }
   if(fileEntry->getRemainingUris().empty()) {
@@ -86,18 +87,14 @@ std::string FeedbackURISelector::select
   // it again without usedHosts.
   std::string uri = selectFaster(fileEntry->getRemainingUris(), usedHosts);
   if(uri.empty()) {
-    if(logger_->debug()) {
-      logger_->debug("No URI returned from selectFaster()");
-    }
+    A2_LOG_DEBUG("No URI returned from selectFaster()");
     uri = selectRarer(fileEntry->getRemainingUris(), usedHosts);
   } 
   if(!uri.empty()) {
     std::deque<std::string>& uris = fileEntry->getRemainingUris();
     uris.erase(std::find(uris.begin(), uris.end(), uri));
   }
-  if(logger_->debug()) {
-    logger_->debug("FeedbackURISelector selected %s", uri.c_str());
-  }
+  A2_LOG_DEBUG(fmt("FeedbackURISelector selected %s", uri.c_str()));
   return uri;
 }
 
@@ -116,9 +113,7 @@ std::string FeedbackURISelector::selectRarer
     SharedHandle<ServerStat> ss =
       serverStatMan_->find(us.host, us.protocol);
     if(ss && ss->isError()) {
-      if(logger_->debug()) {
-        logger_->debug("Error not considered: %s", (*i).c_str());
-      }
+      A2_LOG_DEBUG(fmt("Error not considered: %s", (*i).c_str()));
       continue;
     }
     cands.push_back(std::make_pair(us.host, *i));
@@ -154,9 +149,7 @@ std::string FeedbackURISelector::selectFaster
     }
     if(findSecond(usedHosts.begin(), usedHosts.end(), us.host) !=
        usedHosts.end()) {
-      if(logger_->debug()) {
-        logger_->debug("%s is in usedHosts, not considered", (*i).c_str());
-      }
+      A2_LOG_DEBUG(fmt("%s is in usedHosts, not considered", (*i).c_str()));
       continue;
     }
     SharedHandle<ServerStat> ss =
@@ -175,15 +168,11 @@ std::string FeedbackURISelector::selectFaster
     if(normCands.empty()) {
       return A2STR::NIL;
     } else {
-      if(logger_->debug()) {
-        logger_->debug("Selected from normCands");
-      }
+      A2_LOG_DEBUG("Selected from normCands");
       return normCands.front();
     }
   } else {
-    if(logger_->debug()) {
-      logger_->debug("Selected from fastCands");
-    }
+    A2_LOG_DEBUG("Selected from fastCands");
     std::sort(fastCands.begin(), fastCands.end(), ServerStatFaster());
     return fastCands.front().second;
   }

+ 0 - 3
src/FeedbackURISelector.h

@@ -40,14 +40,11 @@
 namespace aria2 {
 
 class ServerStatMan;
-class Logger;
 
 class FeedbackURISelector:public URISelector {
 private:
   SharedHandle<ServerStatMan> serverStatMan_;
 
-  Logger* logger_;
-
   std::string selectRarer
   (const std::deque<std::string>& uris,
    const std::vector<std::pair<size_t, std::string> >& usedHosts);

+ 13 - 11
src/FileAllocationCommand.cc

@@ -38,6 +38,7 @@
 #include "DownloadEngine.h"
 #include "RequestGroup.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "message.h"
 #include "prefs.h"
 #include "util.h"
@@ -47,6 +48,7 @@
 #include "RecoverableException.h"
 #include "wallclock.h"
 #include "RequestGroupMan.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -66,12 +68,10 @@ bool FileAllocationCommand::executeInternal()
   }
   fileAllocationEntry_->allocateChunk();
   if(fileAllocationEntry_->finished()) {
-    if(getLogger()->debug()) {
-      getLogger()->debug
-        (MSG_ALLOCATION_COMPLETED,
-         static_cast<long int>(timer_.difference(global::wallclock)),
-         util::itos(getRequestGroup()->getTotalLength(), true).c_str());
-    }
+    A2_LOG_DEBUG
+      (fmt(MSG_ALLOCATION_COMPLETED,
+           static_cast<long int>(timer_.difference(global::wallclock)),
+           util::itos(getRequestGroup()->getTotalLength(), true).c_str()));
     getDownloadEngine()->getFileAllocationMan()->dropPickedEntry();
     
     std::vector<Command*>* commands = new std::vector<Command*>();
@@ -90,11 +90,13 @@ bool FileAllocationCommand::executeInternal()
 bool FileAllocationCommand::handleException(Exception& e)
 {
   getDownloadEngine()->getFileAllocationMan()->dropPickedEntry();
-  getLogger()->error
-    (MSG_FILE_ALLOCATION_FAILURE, e, util::itos(getCuid()).c_str());
-  getLogger()->error
-    (MSG_DOWNLOAD_NOT_COMPLETE, util::itos(getCuid()).c_str(),
-     getRequestGroup()->getDownloadContext()->getBasePath().c_str());
+  A2_LOG_ERROR_EX(fmt(MSG_FILE_ALLOCATION_FAILURE,
+                      util::itos(getCuid()).c_str()),
+                  e);
+  A2_LOG_ERROR
+    (fmt(MSG_DOWNLOAD_NOT_COMPLETE,
+         util::itos(getCuid()).c_str(),
+         getRequestGroup()->getDownloadContext()->getBasePath().c_str()));
   return true;
 }
 

+ 3 - 4
src/FileAllocationDispatcherCommand.cc

@@ -37,7 +37,9 @@
 #include "FileAllocationCommand.h"
 #include "message.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "util.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -51,10 +53,7 @@ Command* FileAllocationDispatcherCommand::createCommand
 (const SharedHandle<FileAllocationEntry>& entry)
 {
   cuid_t newCUID = getDownloadEngine()->newCUID();
-  if(getLogger()->info()) {
-    getLogger()->info(MSG_FILE_ALLOCATION_DISPATCH,
-                      util::itos(newCUID).c_str());
-  }
+  A2_LOG_INFO(fmt(MSG_FILE_ALLOCATION_DISPATCH, util::itos(newCUID).c_str()));
   FileAllocationCommand* command =
     new FileAllocationCommand(newCUID, entry->getRequestGroup(),
                               getDownloadEngine(), entry);

+ 35 - 31
src/FileEntry.cc

@@ -39,31 +39,38 @@
 
 #include "util.h"
 #include "URISelector.h"
+#include "Logger.h"
 #include "LogFactory.h"
 #include "wallclock.h"
 #include "a2algo.h"
 #include "uri.h"
 #include "PeerStat.h"
+#include "fmt.h"
 
 namespace aria2 {
 
-FileEntry::FileEntry(const std::string& path,
-                     uint64_t length,
-                     off_t offset,
-                     const std::vector<std::string>& uris):
-  path_(path), uris_(uris.begin(), uris.end()), length_(length),
-  offset_(offset),
-  requested_(true),
-  uniqueProtocol_(false),
-  maxConnectionPerServer_(1),
-  lastFasterReplace_(0),
-  logger_(LogFactory::getInstance()) {}
-
-FileEntry::FileEntry():
-  length_(0), offset_(0), requested_(false),
-  uniqueProtocol_(false),
-  maxConnectionPerServer_(1),
-  logger_(LogFactory::getInstance()) {}
+FileEntry::FileEntry
+(const std::string& path,
+ uint64_t length,
+ off_t offset,
+ const std::vector<std::string>& uris)
+  : path_(path),
+    uris_(uris.begin(), uris.end()),
+    length_(length),
+    offset_(offset),
+    requested_(true),
+    uniqueProtocol_(false),
+    maxConnectionPerServer_(1),
+    lastFasterReplace_(0)
+{}
+
+FileEntry::FileEntry()
+ : length_(0),
+   offset_(0),
+   requested_(false),
+   uniqueProtocol_(false),
+   maxConnectionPerServer_(1)
+{}
 
 FileEntry::~FileEntry() {}
 
@@ -172,9 +179,7 @@ FileEntry::getRequest
     req = requestPool_.front();
     requestPool_.pop_front();
     inFlightRequests_.push_back(req);
-    if(logger_->debug()) {
-      logger_->debug("Picked up from pool: %s", req->getUri().c_str());
-    }
+    A2_LOG_DEBUG(fmt("Picked up from pool: %s", req->getUri().c_str()));
   }
   return req;
 }
@@ -273,11 +278,9 @@ void FileEntry::removeURIWhoseHostnameIs(const std::string& hostname)
       newURIs.push_back(*itr);
     }
   }
-  if(logger_->debug()) {
-    logger_->debug("Removed %lu duplicate hostname URIs for path=%s",
+  A2_LOG_DEBUG(fmt("Removed %lu duplicate hostname URIs for path=%s",
                    static_cast<unsigned long>(uris_.size()-newURIs.size()),
-                   getPath().c_str());
-  }
+                   getPath().c_str()));
   uris_.swap(newURIs);
 }
 
@@ -317,10 +320,10 @@ void FileEntry::extractURIResult
 
 void FileEntry::reuseUri(const std::vector<std::string>& ignore)
 {
-  if(logger_->debug()) {
+  if(A2_LOG_DEBUG_ENABLED) {
     for(std::vector<std::string>::const_iterator i = ignore.begin(),
           eoi = ignore.end(); i != eoi; ++i) {
-      logger_->debug("ignore host=%s", (*i).c_str());
+      A2_LOG_DEBUG(fmt("ignore host=%s", (*i).c_str()));
     }
   }
   std::deque<std::string> uris = spentUris_;
@@ -333,10 +336,10 @@ void FileEntry::reuseUri(const std::vector<std::string>& ignore)
   std::sort(errorUris.begin(), errorUris.end());
   errorUris.erase(std::unique(errorUris.begin(), errorUris.end()),
                   errorUris.end());
-  if(logger_->debug()) {
+  if(A2_LOG_DEBUG_ENABLED) {
     for(std::vector<std::string>::const_iterator i = errorUris.begin(),
           eoi = errorUris.end(); i != eoi; ++i) {
-      logger_->debug("error URI=%s", (*i).c_str());
+      A2_LOG_DEBUG(fmt("error URI=%s", (*i).c_str()));
     }
   }
   std::vector<std::string> reusableURIs;
@@ -357,11 +360,12 @@ void FileEntry::reuseUri(const std::vector<std::string>& ignore)
   }
   reusableURIs.erase(insertionPoint, reusableURIs.end());
   size_t ininum = reusableURIs.size();
-  if(logger_->debug()) {
-    logger_->debug("Found %u reusable URIs", static_cast<unsigned int>(ininum));
+  if(A2_LOG_DEBUG_ENABLED) {
+    A2_LOG_DEBUG(fmt("Found %u reusable URIs",
+                     static_cast<unsigned int>(ininum)));
     for(std::vector<std::string>::const_iterator i = reusableURIs.begin(),
           eoi = reusableURIs.end(); i != eoi; ++i) {
-      logger_->debug("URI=%s", (*i).c_str());
+      A2_LOG_DEBUG(fmt("URI=%s", (*i).c_str()));
     }
   }
   uris_.insert(uris_.end(), reusableURIs.begin(), reusableURIs.end());

+ 0 - 3
src/FileEntry.h

@@ -54,8 +54,6 @@ namespace aria2 {
 
 class URISelector;
 
-class Logger;
-
 class FileEntry {
 private:
   std::string path_;
@@ -74,7 +72,6 @@ private:
   size_t maxConnectionPerServer_;
   std::string originalName_;
   Timer lastFasterReplace_;
-  Logger* logger_;
 
   void storePool(const SharedHandle<Request>& request);
 public:

+ 3 - 1
src/FillRequestGroupCommand.cc

@@ -39,7 +39,9 @@
 #include "RecoverableException.h"
 #include "message.h"
 #include "Logger.h"
+#include "LogFactory.h"
 #include "DownloadContext.h"
+#include "fmt.h"
 
 namespace aria2 {
 
@@ -68,7 +70,7 @@ bool FillRequestGroupCommand::execute()
         rgman->clearQueueCheck();
         rgman->fillRequestGroupFromReserver(e_);
       } catch(RecoverableException& ex) {
-        getLogger()->error(EX_EXCEPTION_CAUGHT, ex);
+        A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, ex);
         // Re-request queue check to fulfill the requests of all
         // downloads, some might come after this exception.
         rgman->requestQueueCheck();

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác