チェックアウトは以下..
q).logger.on[`:/home/chromozorz/q/projects/myLog]
q)2+2
4
q)1+1
2
q)t:([] a:til 5;b:5?`2)
q)2+string
'type
q)2+`a
'type
q)\\
今すぐ作成されたログをチェックしてください... Qにロードした後
.logger.on:{[pth]
if[not ":/"~2#string[pth];-1"\n\tPlease supply absolute path to file; e.g.) .logger.on[`:/path/to/logfile]";];
.logger.err:hopen `$string[pth],".err";
.logger.std:hopen `$string[pth],".out";
writeOut:{ h:(.logger.std;.logger.err)x~`err; h(y,"\n");};
zpi:{y:-1_y; r:@[value;y;{"Error:'",x}]; $["Error:"~6#r;[e:6_r;x[`err;e];-1 e];[x[`std;y];show r]];}[writeOut;];
`.z.pi set zpi;
}
、いくつかのコマンドを入力します(私は自宅のプロジェクトのためにこれを書きました)ファイル。
[email protected]:~/q/projects$ cat myLog.err
'type
'type
[email protected]:~/q/projects$ cat myLog.out
2+2
1+1
t:([] a:til 5;b:5?`2)
コンソールに結果を表示したくない場合は、単にZPI定義を編集は...
あなたは出力のいくつかの例を与え、あなたがそれらをルーティングすることを希望することはできますか? – user2242865
テーブルを除くすべてのものをリダイレクトしたい。タブを言うことができます:([] a:1 2 3; b:2 4 6);私はタブをリダイレクトしたくないのですが、qコンソールにも表示したくありません。すべてのエラーメッセージやその他の情報をログファイルにリダイレクトしたい。私はあまりにも大きいそれらのテーブルのcuzを記録したくありません。 – Terry
これはkdbの質問よりもUnixの質問によく似ていますか? KDBは 'show table'のような結果を含め、プロセスが行うように標準出力/出力に出力するので、(a)コマンドラインでリダイレクトする(あなたの例ですでに行ったように)、(b)正しいチャンネルを使用するリダイレクトするq内。また、q内に.z.p [gs]を記録することもできます。脇の下として、仲間の仲間に最大賞金をあげればより多くの返答を得るかもしれない;) –