code: public void updateLog(CmsDbContext dbc) throws CmsDataAccessException {
  
          synchronized (m_publishListUpdateLock) {
  
              if (m_log.isEmpty()) {
                  return;
              }
  
              List<CmsLogEntry> log = new ArrayList<CmsLogEntry>(m_log);
              m_log.clear();
              String logTableEnabledStr = (String)OpenCms.getRuntimeProperty(PARAM_LOG_TABLE_ENABLED);
              if (Boolean.parseBoolean(logTableEnabledStr)) { // defaults to 'false' if value not set
                  m_projectDriver.log(dbc, log);
              }
              CmsLogToPublishListChangeConverter converter = new CmsLogToPublishListChangeConverter();
              for (CmsLogEntry entry : log) {
                  converter.add(entry);
              }
              m_projectDriver.deleteUserPublishListEntries(dbc, converter.getPublishListDeletions());
              m_projectDriver.writeUserPublishListEntries(dbc, converter.getPublishListAdditions());
          }
      }
docs: Logs everything that has not been written to DB jet.<p>
  
  @param dbc the current db context
  
  @throws CmsDataAccessException if something goes wrong