view: using logger instead of fd.write