Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/accesscode.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/accesscode.py	(revision 7745)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/accesscode.py	(revision 7747)
@@ -32,4 +32,5 @@
 from random import SystemRandom as random
 from waeup.sirp.interfaces import ISIRPPluggable, IObjectHistory
+from waeup.sirp.utils.logger import Logger
 from waeup.sirp.accesscodes.interfaces import (
     IAccessCode, IAccessCodeBatch, IAccessCodeBatchContainer
@@ -276,5 +277,5 @@
 
 
-class AccessCodeBatchContainer(grok.Container):
+class AccessCodeBatchContainer(grok.Container, Logger):
     grok.implements(IAccessCodeBatchContainer)
 
@@ -400,4 +401,14 @@
             return
         reenable_accesscode(ac_id, comment)
+        return
+
+    logger_name = 'waeup.sirp.${sitename}.accesscodes'
+    logger_filename = 'accesscodes.log'
+
+    def logger_info(self, ob_class, comment=None):
+        """Get the logger's info method.
+        """
+        self.logger.info('%s - %s' % (
+                ob_class, comment))
         return
 
Index: main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.py	(revision 7745)
+++ main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.py	(revision 7747)
@@ -55,4 +55,5 @@
         if isinstance(batches, basestring):
             batches = [batches]
+        ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
         for name in batches:
             batch = self.context[name]
@@ -60,8 +61,12 @@
             self.flash(_('Archived ${a} (${b})',
                 mapping = {'a':name, 'b':csv_file}))
+            message = 'archived: %s (%s)' % (name,csv_file)
+            self.context.logger_info(ob_class, message)
             if delete is None:
                 continue
             del self.context[name]
             self.flash(_('Deleted batch ${a}', mapping = {'a':name}))
+            message = 'deleted: %s' % name
+            self.context.logger_info(ob_class, message)
 
 class AddBatchPage(SIRPAddFormPage):
@@ -87,4 +92,8 @@
             mapping = {'a':data['entry_num']}))
         self.flash(_('Data written to ${a}', mapping = {'a':csv_file}))
+        ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+        message = 'created: %s (%d, %f)' % (
+            csv_file, data['entry_num'], data['cost'])
+        self.context.logger_info(ob_class, message)
         self.redirect(self.url(self.context))
 
@@ -130,4 +139,7 @@
             self.flash(_('Successfully reimported: ${a}',
                 mapping = {'a':filename}))
+            ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+            message = 'reimported: %s' % filename
+            self.context.logger_info(ob_class, message)
         self.redirect(self.url(self.context))
 
@@ -162,4 +174,5 @@
         if isinstance(entries, basestring):
             entries = [entries]
+        ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
         for entry in entries:
             if 'disable' in form:
@@ -168,4 +181,6 @@
                     self.context.disable(entry, comment)
                     self.flash(_('${a} disabled.', mapping = {'a':entry}))
+                    message = 'disabled: %s' % entry
+                    self.context.logger_info(ob_class, message)
                 except InvalidTransitionError:
                     self.flash(_('${a}: Disable transition not allowed.',
@@ -176,4 +191,6 @@
                     self.context.enable(entry, comment)
                     self.flash(_('${a} (re-)enabled.', mapping = {'a':entry}))
+                    message = '(re-)enabled: %s' % entry
+                    self.context.logger_info(ob_class, message)
                 except InvalidTransitionError:
                     self.flash(_('${a}: Re-enable transition not allowed.', mapping = {'a':entry}))
