UPD: Табуляция появилась, проблема в if/else - если срабатывает if, то не срабатывает else, логично. Возможно и обратное - if не сработал и сработал else, но и if и else вместе сработать не могут. В этом и проблема - переменная log назначается в if, тогда как используется в else, поэтому если if не срабатывает переменная просто не создаётся. Попробуйте вынести объявление переменных, используемых в else, из конструкции if/else
1. Вы не сделали табуляцию кода в вопросе, без чего не понять, где у вас заканчивается if, else и прочее.
2. Если вы посмотрите на вывод терминала, который вы привели в конце, то там чёрным по белому написано - name 'log' is not defined (переменной с именем log не существует). Из-за проблем с табуляцией точную проблему назвать не могу.
P.S. Использование для базы данных txt файл является очень странным решением. В питоне предустановлена библиотека sqlite3, позволяющая делать все работы с данными в вашем скрипте намного проще и корректнее. Вы же используете для записи данных деревянный забор и тупой гвоздь вместо предназначенной для этого бумаги.