ChainerのTrainer内で、printによるログとファイル出力によるログを出力することができます。
実際に、train_mnist.pyなどでは、この仕組みを用いて、これら2種類のログを出力しています。
これらのうち、printによるログに関わるコードのみを抽出し、それぞれの命令がどのログ出力に関連しているのかを解析してみました。

train_mnist.pyから、printによるログに関わるコードのみを抽出した結果は以下の通りです。
# プログレスバー
trainer.extend(extensions.ProgressBar())

# 訓練ログ
trainer.extend(extensions.LogReport())
trainer.extend(extensions.PrintReport(
['epoch', 'main/loss', 'validation/main/loss',
'main/accuracy', 'validation/main/accuracy', 'elapsed_time']))

# テストデータのログ出力準備
trainer.extend(extensions.Evaluator(test_iter, model, device=args.gpu))

コメントにある通り、それぞれ、プログレスバー、訓練ログ、テストデータのログ出力準備のための命令です。
trainer.extend(extensions.LogReport())を呼ばないと、それ以下の2命令がエラーになります。
また、trainer.extend(extensions.Evaluator())を呼ばないと、'validation/main/loss'と'validation/main/accuracy’の結果が出力されなくなります。