docs: def addLogEntry(self, entry, save=True):
          """This is called when a new log entry is created"""
          # create log directory if it doesn't exist
          # error will be thrown if this is not possible
          _busy = Purr.BusyIndicator()
          self._initIndexDir()
          # discard temporary watchers -- these are only used to keep track of
          # deleted files
          self.temp_watchers = {}
          # ignored entries are only there to carry info on ignored data products
          # All we do is save them, and update DP policies based on them
          if entry.ignore:
              entry.save(self.logdir)
          # proper entries are added to list
          else:
              self.entries.append(entry)
              Purr.progressMessage("Saving new log entry")
              # find previous entry -- skip over "ignore" entries
              for prev in self.entries[-2::-1]:
                  if not prev.ignore:
                      break
              else:
                  prev = None
              entry.setLogDirectory(self.logdir)
              entry.setPrevUpNextLinks(prev=prev, up=os.path.join("..", Purr.RenderIndex.INDEX))
              entry.save()
              self.timestamp = self.last_scan_timestamp
              # regenerate links of previous entry
              prev and prev.generateIndex()
              # and our log may need to be regenerated
              if save:
                  self.save()
          self.updatePoliciesFromEntry(entry, new=True)