2

plv8 プロシージャで plv8.elog() を使用して SQL クエリを出力しようとしています。

plv8.elog(NOTICE, 'Notice:', str);

理由はわかりませんが、コンソールに出力が表示されません。可能な解決策を検索したところ、 plv8 が最大長 512 文字までの文字列を出力できるという有用な情報が見つかりました。以下にリンクを示します。

http://code.google.com/p/plv8js/issues/detail?id=78

これを確認するために、同じ文字列を str.slice で出力しようとしました

    plv8.elog(NOTICE, 'Notice:', str.slice(0,512));

今度は期待通りのログ出力を見ることができます。512文字を超える文字列をログに記録するにはどうすればよいですか?

4

1 に答える 1

2

私はこの機能を使用します:

var logMaxL = 90;
function log () {//{{{
    var overflow = [];
    var args = Array.prototype.slice.call(arguments, 0).map(function(arg, i){
        if (arg instanceof Object) arg = JSON.stringify(arg);
        if (
            typeof arg == "string"
            && arg.length > logMaxL
        ) {
            overflow[i] = arg.substring(50);
            arg = arg.substring(0, 50);
        };
        return arg;
    });
    plv8.elog.apply(this, [NOTICE].concat(args));
    if (overflow.length) log.apply(this,overflow);
};//}}}

(コンテキスト:この Gistはまだ更新されていません。申し訳ありません)

希望は助けることができます...

于 2015-06-04T11:01:57.690 に答える