code: def _log_in_sent_log(self, block):
          
          # FIXME all these should be done by the block itself
          self._sent_log_file.write("\n")
          sent_file_info = block.latest_file_info
          self._sent_log_file.write("|".join((sent_file_info.basename, sent_file_info.sha1)))
          if hasattr(block, 'cipher_key'):
              self._sent_log_file.write("|")
              self._sent_log_file.write("|".join((block.cipher_key, block.ciphered_file_info.sha1)))
          for file_info in block.content_file_infos:
              self._sent_log_file.write("\n\t")
              self._sent_log_file.write("|".join((file_info.path, file_info.sha1)))
              if hasattr(file_info, 'fragment_info'):  # check if it is a fragment
                  self._sent_log_file.write("|")
                  self._sent_log_file.write("|".join((
                      "%d of %d" % (file_info.fragment_info.fragment_num, file_info.fragment_info.fragments_count),
                      file_info.fragment_info.file_info.sha1)))
docs: Logs:
                  block file | bfile (not encrypted) sha1 [| bfile encryption key | encrypted bfile sha1]
                  <tab>content file | cfile sha1 | part of parts [| whole file sha1]