diff --git a/linkcheck/logger/__init__.py b/linkcheck/logger/__init__.py
index fb96fd09..478b621c 100644
--- a/linkcheck/logger/__init__.py
+++ b/linkcheck/logger/__init__.py
@@ -62,8 +62,12 @@ class Logger (object):
self.logspaces = {}
# maximum indent of spaces for alignment
self.max_indent = 0
+ # number of logged urls
+ self.number = 0
# number of encountered errors
self.errors = 0
+ # number of encountered warningss
+ self.warnings = 0
# encoding of output
self.output_encoding = args.get("encoding", "iso-8859-1")
@@ -177,13 +181,25 @@ class Logger (object):
numspaces = (self.max_indent - len(self.field(key)))
self.logspaces[key] = u" " * numspaces
- def new_url (self, url_data):
+ def log_filter_url (self, url_data, do_print):
+ """
+ Log a new url with this logger if do_filter is True. Else
+ only update accounting data
+ """
+ self.number += 1
+ if not url_data.valid:
+ self.errors += 1
+ self.warnings += len(url_data.warning)
+ if do_print:
+ self.log_url(url_data)
+
+ def log_url (self, url_data):
"""
Log a new url with this logger.
"""
raise NotImplementedError, "abstract function"
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
End of output, used for cleanup (eg output buffer flushing).
"""
diff --git a/linkcheck/logger/blacklist.py b/linkcheck/logger/blacklist.py
index ef1c36bf..599546f9 100644
--- a/linkcheck/logger/blacklist.py
+++ b/linkcheck/logger/blacklist.py
@@ -56,7 +56,7 @@ class BlacklistLogger (linkcheck.logger.Logger):
"""
pass
- def new_url (self, url_data):
+ def log_url (self, url_data):
"""
Put invalid url in blacklist, delete valid url from blacklist.
"""
@@ -71,7 +71,7 @@ class BlacklistLogger (linkcheck.logger.Logger):
if not url_data.valid:
self.blacklist[key] = 1
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Write blacklist file.
"""
diff --git a/linkcheck/logger/csvlog.py b/linkcheck/logger/csvlog.py
index dbda2186..ee7ab0e4 100644
--- a/linkcheck/logger/csvlog.py
+++ b/linkcheck/logger/csvlog.py
@@ -92,7 +92,7 @@ class CSVLogger (linkcheck.logger.Logger):
if row:
self.writer.writerow(row)
- def new_url (self, url_data):
+ def log_url (self, url_data):
"""
Print csv formatted url check info.
"""
@@ -116,7 +116,7 @@ class CSVLogger (linkcheck.logger.Logger):
self.writer.writerow(row)
self.flush()
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Print end of checking info as csv comment.
"""
diff --git a/linkcheck/logger/dot.py b/linkcheck/logger/dot.py
index 64b2c7a0..b23e0989 100644
--- a/linkcheck/logger/dot.py
+++ b/linkcheck/logger/dot.py
@@ -66,7 +66,7 @@ class DOTLogger (linkcheck.logger.Logger):
self.write(u"// ")
self.writeln(s=s, **args)
- def new_url (self, url_data):
+ def log_url (self, url_data):
"""
Write one node and all possible edges.
"""
@@ -106,7 +106,7 @@ class DOTLogger (linkcheck.logger.Logger):
self.writeln(u" ];")
self.flush()
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Print end of checking info as DOT comment.
"""
diff --git a/linkcheck/logger/gml.py b/linkcheck/logger/gml.py
index 2b04f7a6..8da2fa1e 100644
--- a/linkcheck/logger/gml.py
+++ b/linkcheck/logger/gml.py
@@ -67,7 +67,7 @@ class GMLLogger (linkcheck.logger.Logger):
self.write(u"# ")
self.writeln(s=s, **args)
- def new_url (self, url_data):
+ def log_url (self, url_data):
"""
Write one node and all possible edges.
"""
@@ -110,7 +110,7 @@ class GMLLogger (linkcheck.logger.Logger):
self.writeln(u" ]")
self.flush()
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Print end of checking info as gml comment.
"""
diff --git a/linkcheck/logger/html.py b/linkcheck/logger/html.py
index a684df3d..c3594afc 100644
--- a/linkcheck/logger/html.py
+++ b/linkcheck/logger/html.py
@@ -107,7 +107,7 @@ class HtmlLogger (linkcheck.logger.Logger):
self.check_date()
self.flush()
- def new_url (self, url_data):
+ def log_url (self, url_data):
"""
Print url checking info as HTML.
"""
@@ -267,7 +267,6 @@ class HtmlLogger (linkcheck.logger.Logger):
self.field("result")+u"
")
self.write(_("Valid"))
else:
- self.errors += 1
self.write(u" | | "+
self.field("result")+u" | ")
self.write(_("Error"))
@@ -275,7 +274,7 @@ class HtmlLogger (linkcheck.logger.Logger):
self.write(u": "+cgi.escape(url_data.result))
self.writeln(u" |
")
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Print end of checking info as HTML.
"""
@@ -284,10 +283,13 @@ class HtmlLogger (linkcheck.logger.Logger):
if self.has_field("outro"):
self.writeln()
self.write(_("That's it.")+" ")
- if linknumber >= 0:
+ if self.number >= 0:
self.write(_n("%d link checked.", "%d links checked.",
- linknumber) % linknumber)
+ self.number) % self.number)
self.write(u" ")
+ self.write(_n("%d warning found.", "%d warnings found.",
+ self.warnings) % self.warnings)
+ self.write(u" ")
self.writeln(_n("%d error found.", "%d errors found.",
self.errors) % self.errors)
self.writeln(u"
")
diff --git a/linkcheck/logger/none.py b/linkcheck/logger/none.py
index a6c3900f..a60cf4cc 100644
--- a/linkcheck/logger/none.py
+++ b/linkcheck/logger/none.py
@@ -38,13 +38,13 @@ class NoneLogger (linkcheck.logger.Logger):
"""
pass
- def new_url (self, url_data):
+ def log_filter_url (self, url_data, do_filter):
"""
Do nothing.
"""
pass
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Do nothing.
"""
diff --git a/linkcheck/logger/sql.py b/linkcheck/logger/sql.py
index fe588638..467a4066 100644
--- a/linkcheck/logger/sql.py
+++ b/linkcheck/logger/sql.py
@@ -89,7 +89,7 @@ class SQLLogger (linkcheck.logger.Logger):
self.writeln()
self.flush()
- def new_url (self, url_data):
+ def log_url (self, url_data):
"""
Store url check info into the database.
"""
@@ -136,7 +136,7 @@ class SQLLogger (linkcheck.logger.Logger):
})
self.flush()
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Print end of checking info as sql comment.
"""
diff --git a/linkcheck/logger/text.py b/linkcheck/logger/text.py
index 69c991e1..d8badcc1 100644
--- a/linkcheck/logger/text.py
+++ b/linkcheck/logger/text.py
@@ -42,7 +42,7 @@ class TextLogger (linkcheck.logger.Logger):
as a default and then switch to another configured output. So we
must not print anything out at __init__ time.
- C{def new_url (self, url_data)}
+ C{def log_filter_url (self, url_data, do_filter)}
Called every time an url finished checking. All data we checked is in
the UrlData object url_data.
@@ -105,7 +105,7 @@ class TextLogger (linkcheck.logger.Logger):
linkcheck.strformat.strtime(self.starttime))
self.flush()
- def new_url (self, url_data):
+ def log_url (self, url_data):
"""
Print url checking info.
"""
@@ -224,14 +224,13 @@ class TextLogger (linkcheck.logger.Logger):
color = self.colorvalid
self.write(_("Valid"), color=color)
else:
- self.errors += 1
color = self.colorinvalid
self.write(_("Error"), color=color)
if url_data.result:
self.write(u": "+url_data.result, color=color)
self.writeln()
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Print end of output info, and flush all output buffers.
"""
@@ -240,11 +239,14 @@ class TextLogger (linkcheck.logger.Logger):
if self.has_field('outro'):
self.writeln()
self.write(_("That's it.")+" ")
- if linknumber >= 0:
+ if self.number >= 0:
self.write(_n("%d link checked.", "%d links checked.",
- linknumber) % linknumber)
+ self.number) % self.number)
self.write(u" ")
+ self.write(_n("%d warning found.", "%d warnings found.",
+ self.warnings) % self.warnings)
+ self.write(u" ")
self.writeln(_n("%d error found.", "%d errors found.",
self.errors) % self.errors)
self.stoptime = time.time()
diff --git a/linkcheck/logger/xmllog.py b/linkcheck/logger/xmllog.py
index 43755ae7..7edce3ef 100644
--- a/linkcheck/logger/xmllog.py
+++ b/linkcheck/logger/xmllog.py
@@ -107,7 +107,7 @@ class XMLLogger (linkcheck.logger.Logger):
self.writeln(u'')
self.flush()
- def new_url (self, url_data):
+ def low_url (self, url_data):
"""
Write one node and all possible edges.
"""
@@ -157,7 +157,7 @@ class XMLLogger (linkcheck.logger.Logger):
self.writeln(u" ")
self.flush()
- def end_output (self, linknumber=-1):
+ def end_output (self):
"""
Finish graph output, and print end of checking info as xml comment.
"""