「maven2/コマンドプロンプトでログが流れて消えてしまうの」の編集履歴(バックアップ)一覧に戻る
maven2/コマンドプロンプトでログが流れて消えてしまうの - (2008/05/23 (金) 16:50:06) のソース
たくさんの子プロジェクトを指定したpom.xml使ってmvn installとかすると、コマンドプロンプトに表示されるログの最初のほうが消えちゃうの。 これじゃWARNINGとか確認できないわ。 #contents *ログをファイルに出力してもらう そんなときは、コマンドに以下の通り追加してみるですよ。 >logfile.log これがログをファイルに書き込んでくれる呪文というかコマンド。 logfileはどんな名前でもお好きなものを。 *使い方の例 例えばZドライブにあるmaventestというプロジェクトをinstallするとき Z:\maventest> mvn install >001.log こうすると、maventestディレクトリ直下に001と言う名前のlogファイルが作成されて、そこにinstall実行のログが書かれていくです。 これやるとコマンドプロンプトでログが流れないので、終わったかどうか横目で確認は難しくなりますが、ログを最初から見ることができるので便利。 *これはなに? お願いした実行プログラムさんの標準出力先を変更しているです。 普段わからず使ってましたが、コマンドプロンプトが標準出力先になっているから実行するとだかだかログが流れるわけです。 なのでその出力先を実行時に変更してしまうということですね。 「>」をつけたあとに出力先を書くのです。 そうすると「標準出力」のログを書いてくれます。 つまり、コマンドプロンプトさんのコマンドです。mvnのってわけじゃないです。 エラーの出力も一緒にファイルに書いてもらいたいのなら 2>&1 をつけるです。 つまり Z:\maventest> mvn install >002.log 2>&1 2とか1とかって何だよって思ったら、2は標準エラー出力のログだけよろしく!ってお願い。 指定しないのと0と1は標準出力なんですって。 どれが標準出力のログでどれがエラーのログなのかわからないわ。。。(オイ とりあえずmvn exec:javaを実行した時は、実行ログがコマンドプロンプトに表示されなかったので、「>log001.log」ってくっつけて実行したら、log001.logに実行結果(と言うかmainメソッドの中のsystem.out.print()の出力)が出力されててうれしかったわ。 でもOpenJPAのログとかはコマンドプロンプトに表示されるの。 これが「2>&1」をつけてみると、全部ログファイルに出力されて、コマンドプロンプトには何も表示されない。 ちなみに >log001.log 2>log002.log っていうのをつけると、2つのログが分かれてファイルに出力されたわ! うーん。 イマイチどれがどれなのかまだわからないのは、openJpaさんとかmaven2さんがどういうログのはき方してるのかを知らないからなのね。。。 学ばないと。 *注意 同じ名前のlogファイルを指定すると、さっくり上書きされますご注意。 *他の方法 コマンドプロンプトからの実行なら、表示するバッファサイズを変更することで対応もできるかも? プロパティ>「オプション」タグ>「コマンドの履歴」の中の バッファサイズをでかくする。 とかね? でもファイルとして保存したいなら上のように指定するほうがいいのかな。 他にもフリーソフトとかでログをファイルに落としてくれるのがあるらしい。<試してないけれど。。 *メモ ログログログって連呼しているけれど、ログって呼び方は正しくないのかなあ。 コンソールにだかだか出てくるものをすべてログと呼ぶ癖が。 むう。