web version of analyze() saves log to db