diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -1411,6 +1411,8 @@ class changeset_printer(object):
             self.ui.write(_("trouble:     %s\n") % ', '.join(ctx.troubles()),
                           label='log.trouble')
 
+        self._exthook(ctx)
+
         if self.ui.debugflag:
             files = ctx.p1().status(ctx)[:3]
             for key, value in zip([# i18n: column positioning for "hg log"
@@ -1457,6 +1459,11 @@ class changeset_printer(object):
 
         self.showpatch(ctx, matchfn)
 
+    def _exthook(self, ctx):
+        '''empty method used by extension as a hook point
+        '''
+        pass
+
     def showpatch(self, ctx, matchfn):
         if not matchfn:
             matchfn = self.matchfn
diff --git a/tests/test-log-exthook.t b/tests/test-log-exthook.t
new file mode 100644
--- /dev/null
+++ b/tests/test-log-exthook.t
@@ -0,0 +1,56 @@
+Test hg log changeset printer external hook
+-------------------------------------------
+
+  $ cat > $TESTTMP/logexthook.py <<EOF
+  > from mercurial import repair, commands
+  > from mercurial import cmdutil
+  > def rot13description(self, ctx):
+  >     summary = "summary".encode('rot13')
+  >     description = ctx.description().strip().splitlines()[0].encode('rot13')
+  >     self.ui.write("%s:     %s\n" % (summary, description))
+  > def reposetup(ui, repo):
+  >     cmdutil.changeset_printer._exthook = rot13description
+  > EOF
+
+Prepare the repository
+
+  $ hg init empty
+  $ cd empty
+  $ touch ROOT
+  $ hg commit -A -m "Root" ROOT
+
+  $ touch a b c
+  $ hg commit -A -m "Add A, B, C" a b c
+
+Check the log
+
+  $ hg log --config extensions.t=$TESTTMP/logexthook.py
+  changeset:   1:70fc82b23320
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  fhzznel:     Nqq N, O, P
+  summary:     Add A, B, C
+  
+  changeset:   0:b00443a54871
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  fhzznel:     Ebbg
+  summary:     Root
+  
+Check that exthook is working with graph log too
+
+  $ hg log -G --config extensions.t=$TESTTMP/logexthook.py
+  @  changeset:   1:70fc82b23320
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  fhzznel:     Nqq N, O, P
+  |  summary:     Add A, B, C
+  |
+  o  changeset:   0:b00443a54871
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     fhzznel:     Ebbg
+     summary:     Root
+