# `Logger`

class mnemosyne.libmnemosyne.logger.Logger(component_manager)
  activate()

    Initialisation code called when the component is about to do actual work, and which can’t happen in the constructor, e.g. because components on which it relies have not yet been registered.

  added_card(card)
  added_card_type(card_type)
  added_criterion(criterion)
  added_fact(fact)
  added_fact_view(fact_view)
  added_media_file(filename)
  added_tag(tag)
  archive_old_log()

    Archive log to history folder if it’s large enough.

  component_type = 'log'
  deactivate()
  deleted_card(card)
  deleted_card_type(card_type)
  deleted_criterion(criterion)
  deleted_fact(fact)
  deleted_fact_view(fact_view)
  deleted_media_file(filename)
  deleted_tag(tag)
  dump_to_science_log()
  edited_card(card)
  edited_card_type(card_type)
  edited_criterion(criterion)
  edited_fact(fact)
  edited_fact_view(fact_view)
  edited_media_file(filename)
  edited_setting(key)
  edited_tag(tag)
  get_timestamp()

    If self._timestamp == None (the default), then the timestamp will be the current time. It is useful to be able to override this, e.g. during database import or syncing, when you need to add log entries to the database that happened in the past.

  loaded_database(machine_id=None, scheduled_count=None, non_memorised_count=None, active_count=None)
  log_index_of_last_upload()

    We don’t store this info in the configuration, but determine it on the fly, so that users can copy configuration files between their machines.

    1.x log names have the format userid_index.bz2. 2.x log names have the format userid_machineid_index.bz2

    Obviously, we should only consider the logs from our own machine.

  repetition(card, scheduled_interval, actual_interval, thinking_time)
  saved_database(machine_id=None, scheduled_count=None, non_memorised_count=None, active_count=None)
  set_timestamp(timestamp)
  start_logging()
  started_program(version_string=None)
  started_scheduler(scheduler_name=None)
  stopped_program()
  property timestamp

    If self._timestamp == None (the default), then the timestamp will be the current time. It is useful to be able to override this, e.g. during database import or syncing, when you need to add log entries to the database that happened in the past.

  warn_too_many_cards()