当前位置:  开发笔记 > 编程语言 > 正文

我可以在DBIx :: Class中打印DBIC_TRACE输出吗?

如何解决《我可以在DBIx::Class中打印DBIC_TRACE输出吗?》经验,为你挑选了2个好方法。

将DBIC_TRACE环境变量设置为true:

BEGIN { $ENV{DBIC_TRACE} = 1 }

生成非常有用的输出,特别是显示正在执行的SQL查询,但SQL查询全部在一行上.

有没有办法推动它通过一些有点"sql整洁"的例程来更好地格式化它,或许可以在多行中分解它?如果不这样做,任何人都可以给我一个推动代码中我需要破解添加这样一个钩子的地方吗?最好的工具是接受格式错误的SQL查询并推出格式良好的SQL查询?

在这种情况下,"良好的格式化"仅仅意味着比"一条线上的所有"更好.我并不特别关注格式化查询的特定样式

谢谢!



1> nathand..:

从DBIx :: Class 0.08124开始,它就是内置的.

只需设置$ENV{DBIC_TRACE_PROFILE}consoleconsole_monochrome.



2> Leon Timmerm..:

从DBIx :: Class :: Storage的文档中

如果设置了DBIC_TRACE,则会生成跟踪信息(如设置调试方法时).

...

debug
导致在debugobj对象上发出跟踪信息.(如果没有专门设置debugobj,则为STDERR).

debugobj
设置或检索用于度量标准收集的对象.默认为DBIx :: Class :: Storage :: Statistics的实例,它与使用coderef作为回调的原始方法兼容.有关更多信息,请参阅上述统计类.

换句话说,您应该debugobj在该类中设置一个子类DBIx :: Class :: Storage :: Statistics的对象.在您的子类中,您可以按照您希望的方式重新格式化查询.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有