Re: Making trace show more than 2 elements
"Martin J. Evans" <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.dbi.sybase.devel |
|---|---|
| Message-ID | <[email protected]> |
On 27/09/13 16:29, demerphq wrote:> On 27 September 2013 17:08, Martin J. Evans <[email protected]> wrote: >> On 27/09/13 15:37, demerphq wrote: >>> >>> Is there an undocumented magic variable that will make DBI trace mode >>> show more than the first two arguments to a function like >>> selectrow_array() or similar? >>> >>> Cheers, >>> Yves >>> >> >> Works for me: >> >> DBI_TRACE=15=x.log perl -Iblib/lib/ -Iblib/arch/ -MDBI -le 'my $h = >> DBI->connect("dbi:ODBC:xxx","xx","xx"); my $x = >> $h->selectrow_arrayref(q/select * from mje where a= ?/, undef, "a");' >> >> trace shows 3 arguments: >> >> -> selectrow_arrayref for DBD::ODBC::db >> (DBI::db=HASH(0x9385508)~0x938542c 'select * from mje where a= ?' undef 'a') >> thr#9215008 >> >> There is also DBIx::Log4perl and DBIx::LogAny too if you want to trace just >> method calls and arguments. > > Gah, that outputs too much junk at the same time.... Which outputs too much junk at the same time? level 15 tracing or DBIx::Log4perl? > I want to control it at DBI->trace(1) level. IOW, I dont want low > level debug on the DBI calls, I want the output from trace(1) but with > all the arguments. You didn't mention trace level 1 before. Now I see what you mean: DBI_TRACE=1=x.log perl -Iblib/lib/ -Iblib/arch/ -MDBI -le 'my $h = DBI->connect("dbi:ODBC:xx","xx","xx"); my $x = $h->selectrow_arrayref(q/select * from mje where a= ?/, undef, "a");' <- selectrow_arrayref('select * from mje where a= ?', undef, ...)= ( [ 'a' 'b' ] ) [1 items] at -e line 1 > I can change how much of a given string I see with $DBI::neat_maxlen > but there doesnt seem to a be a $DBI::neat_list_maxitems or > equivalent.... > > cheers, > Yves > > No, there isn't. I wouldn't imagine it would be too hard to add though (not that I looked). Martin