Tripletail
view release on metacpan or search on metacpan
#+STARTUP: fnprompt
#+STARTUP: logdone
#+OPTIONS: ^:nil
#+TODO: UNRELEASED(u) | RELEASED(r)
Revision history for Tripletail
* RELEASED 0.69
CLOSED: [2025-03-13 Thu 11:39]
** =t/0.prereq.t=
=PadWalker= ãã¤ã³ã¹ãã¼ã«ããã¦ããªãç°å¢ã§ =make test= ãå®è¡ããã¨
=t/0.prereq.t= ã®ãã¹ãã«å¤±æããä¸å
·åãä¿®æ£ãã:
https://rt.cpan.org/Public/Bug/Display.html?id=162743
* RELEASED 0.68
CLOSED: [2025-03-12 Wed 15:55]
** TL::isDomainName
ã¦ã¼ã¶ã¼ãæå®åºæ¥ããã¡ã¤ã³åã¨ãã¦ã¯253æå以ä¸ãæ£ããçºã255æå以ä¸ãã253æå以ä¸ã«ä¿®æ£ããã
** =t/manifest.t=
=mlpod2html= ãã¤ã³ã¹ãã¼ã«ããã¦ããªãç°å¢ã§ =make clean= å¾ã« =make test=
ãå®è¡ãã㨠=t/manifest.t= ã®ãã¹ãã«å¤±æããä¸å
·åãä¿®æ£ãã:
"ExtUtils::MakeMaker" : "6.86"
}
},
"runtime" : {
"recommends" : {
"Cache::Memcached" : "0",
"DBD::Pg" : "0",
"DBD::SQLite" : "0",
"DBD::mysql" : "0",
"FCGI" : "0",
"PadWalker" : "0",
"Text::CSV_XS" : "0"
},
"requires" : {
"Compress::Zlib" : "0",
"Crypt::CBC" : "0",
"Crypt::Rijndael" : "0",
"DBI" : "0",
"Digest::SHA" : "0",
"IO::Scalar" : "0",
"LWP::UserAgent" : "0",
directory:
- t
- inc
- sample
recommends:
Cache::Memcached: '0'
DBD::Pg: '0'
DBD::SQLite: '0'
DBD::mysql: '0'
FCGI: '0'
PadWalker: '0'
Text::CSV_XS: '0'
requires:
Compress::Zlib: '0'
Crypt::CBC: '0'
Crypt::Rijndael: '0'
DBI: '0'
Digest::SHA: '0'
IO::Scalar: '0'
LWP::UserAgent: '0'
List::MoreUtils: '0'
Makefile.PL view on Meta::CPAN
'Test::Pod::Coverage' => '1.04'
}
},
runtime => {
recommends => {
'Cache::Memcached' => 0,
'DBD::Pg' => 0,
'DBD::SQLite' => 0,
'DBD::mysql' => 0,
'FCGI' => 0,
'PadWalker' => 0,
'Text::CSV_XS' => 0
},
suggests => {
'DBD::InterBase' => 0,
'DBD::ODBC' => 0,
'DBD::Oracle' => 0,
'MongoDB' => 'v1.6',
'Time::Moment' => 0
}
}
doc/Tripletail.html view on Meta::CPAN
<dt><a id="errorlog"><span class="pod_lang"><code class="pod_iseq_C">errorlog</code>
</span></a></dt>
<dd>
<pre class="pod_verbatim"><code> errorlog = 1</code></pre>
<p>
<span class="pod_lang">ã¨ã©ã¼çºçæã«ãã°ã«æ
å ±ãæ®ããã©ãããæå®ããã
1 ãæå®ãããã°ã¨ã©ã¼æ
å ±ãæ®ãã
2 ãæå®ãããã°ãã¨ã©ã¼æ
å ±ã«å ãã CGI ã®ãªã¯ã¨ã¹ãå
å®¹ãæ®ãï¼startCgiå
ã§ã®ã¨ã©ã¼ã®ã¿ï¼ã
3 ãæå®ãããã°ããã¼ã«ã«å¤æ°å
容ãå«ãã 詳細ãªã¨ã©ã¼æ
å ±ã«å ãã¦ï¼ä½ã PadWalker ãå¿
è¦ï¼ã CGI ã®ãªã¯ã¨ã¹ãå
å®¹ãæ®ãã
0 ã§ããã°æ
å ±ãæ®ããªãã
ããã©ã«ã㯠1ã
</span>
</p>
</dd>
<dt><a id="fcgilog"><span class="pod_lang"><code class="pod_iseq_C">fcgilog</code>
</span></a></dt>
doc/Tripletail.html view on Meta::CPAN
<span class="pod_lang">ã¨ã©ã¼çºçæã«è¡¨ç¤ºããã¹ã¿ãã¯ãã¬ã¼ã¹ã®ç¨®é¡ã'none' ã®å ´åã¯ãã¹ã¿ãã¯
ãã¬ã¼ã¹ãä¸å表示ããªãã'<code class="pod_iseq_C">onlystack</code>' ã®å ´åã¯ãã¹ã¿ãã¯ãã¬ã¼ã¹ã®ã¿ã
表示ããã'full' ã®å ´åã¯ãã¹ã¿ãã¯ãã¬ã¼ã¹ã«å ãã¦ã½ã¼ã¹ã³ã¼ãæ¬ä½ä¸¦ã³
ã«åãã¬ã¼ã ã«æ¼ãããã¼ã«ã«å¤æ°ã®ä¸è¦§ãã表示ãããããã©ã«ãã¯
'<code class="pod_iseq_C">onlystack</code>'ã
</span>
</p>
<p>
<span class="pod_lang">ä½ããã¼ã«ã«å¤æ°ä¸è¦§ã表示ããã«ã¯ <a href="http://search.cpan.org/perldoc/PadWalker">PadWalker</a> ãã¤ã³ã¹ãã¼ã«ããã¦ã
ãªããã°ãªããªãã
</span>
</p>
<p>
<span class="pod_lang">注æ: 'full' ã®ç¶æ
ã§ã¯ã<code class="pod_iseq_C">stackallow</code> ã§è¨±ãããå
¨ã¦ã®ã¦ã¼ã¶ã¼ãã
ãã©ã¦ã¶ããå
¨ã¦ã®ã½ã¼ã¹ã³ã¼ãåã³ ini
ãã¡ã¤ã«ã®ä¸èº«ãèªãäºãåºæ¥ãç¹ã«æ³¨æãããã¨ã
lib/Tripletail.pm view on Meta::CPAN
init
ini
inigroup
errorlog
errormail
errormailtype
errortemplate
errortemplatecharset
escapeJs
escapeJsString
PadWalker
MemCached
memcached
mon
fcgilog
filelog
imode
sjis-imode
ja
printCacheUnlessModified
setContentFilter
lib/Tripletail.pm view on Meta::CPAN
=back
=item C<errorlog>
errorlog = 1
ã¨ã©ã¼çºçæã«ãã°ã«æ
å ±ãæ®ããã©ãããæå®ããã
1 ãæå®ãããã°ã¨ã©ã¼æ
å ±ãæ®ãã
2 ãæå®ãããã°ãã¨ã©ã¼æ
å ±ã«å ãã CGI ã®ãªã¯ã¨ã¹ãå
å®¹ãæ®ãï¼startCgiå
ã§ã®ã¨ã©ã¼ã®ã¿ï¼ã
3 ãæå®ãããã°ããã¼ã«ã«å¤æ°å
容ãå«ãã 詳細ãªã¨ã©ã¼æ
å ±ã«å ãã¦ï¼ä½ã PadWalker ãå¿
è¦ï¼ã CGI ã®ãªã¯ã¨ã¹ãå
å®¹ãæ®ãã
0 ã§ããã°æ
å ±ãæ®ããªãã
ããã©ã«ã㯠1ã
=item C<fcgilog>
fcgilog = 1
FCGI é¢é£ã®åä½ããã°ã«è¨é²ãããã©ãããæå®ããã
1 ãæå®ãããã°è¨é²ããã
0 ã§ããã°è¨é²ããªãã
lib/Tripletail.pm view on Meta::CPAN
=item C<stacktrace>
stacktrace = full
ã¨ã©ã¼çºçæã«è¡¨ç¤ºããã¹ã¿ãã¯ãã¬ã¼ã¹ã®ç¨®é¡ã'none' ã®å ´åã¯ãã¹ã¿ãã¯
ãã¬ã¼ã¹ãä¸å表示ããªãã'C<onlystack>' ã®å ´åã¯ãã¹ã¿ãã¯ãã¬ã¼ã¹ã®ã¿ã
表示ããã'full' ã®å ´åã¯ãã¹ã¿ãã¯ãã¬ã¼ã¹ã«å ãã¦ã½ã¼ã¹ã³ã¼ãæ¬ä½ä¸¦ã³
ã«åãã¬ã¼ã ã«æ¼ãããã¼ã«ã«å¤æ°ã®ä¸è¦§ãã表示ãããããã©ã«ãã¯
'C<onlystack>'ã
ä½ããã¼ã«ã«å¤æ°ä¸è¦§ã表示ããã«ã¯ L<PadWalker> ãã¤ã³ã¹ãã¼ã«ããã¦ã
ãªããã°ãªããªãã
注æ: 'full' ã®ç¶æ
ã§ã¯ãC<stackallow> ã§è¨±ãããå
¨ã¦ã®ã¦ã¼ã¶ã¼ãã
ãã©ã¦ã¶ããå
¨ã¦ã®ã½ã¼ã¹ã³ã¼ãåã³ ini
ãã¡ã¤ã«ã®ä¸èº«ãèªãäºãåºæ¥ãç¹ã«æ³¨æãããã¨ã
=item C<stackallow>
stackallow = 192.168.0.0/24
lib/Tripletail/Error.pm view on Meta::CPAN
use warnings;
use Data::Dumper;
#use Smart::Comments;
use Tripletail;
use overload
'""' => \&_stringify,
fallback => 1;
sub _POST_REQUEST_HOOK_PRIORITY() { 2_000_000_000 } # Debug ãããå¾
my $PADWALKER_AVAILABLE; # PadWalker ãå©ç¨å¯è½ã§ãããã©ãããundef / 1 / 0
my $VARIABLE_LENGTH_LIMIT = 32 * 1024; # 1夿°ãããã®è¡¨ç¤ºããæå¤§é· (ãã¤ã)
my $DEFAULT_ERROR_TEMPLATE = &__load_default_error_template();
my $TRACE_ALLOWANCE_OF_CURRENT_REQUEST;
# æå¾ã«çºçãã DB ã®ã¨ã©ã¼ãå
容ã¯ä»»æã®ããã·ã¥ã
our $LAST_DB_ERROR;
lib/Tripletail/Error.pm view on Meta::CPAN
$this->{message} = $new;
}
$this->{message};
}
sub _fetch_frames {
my $this = shift;
if (not defined $PADWALKER_AVAILABLE) {
eval {
require PadWalker;
};
$PADWALKER_AVAILABLE = ($@ ? 0 : 1);
}
my $found_die_handler;
my $level = 0;
my $pad_level = 0;
$this->{appear} = 'sudden'; # sudden/usertrap
for (my $i = 0; my @c = caller $i; $i++) {
lib/Tripletail/Error.pm view on Meta::CPAN
}
$this->{suppress_internal} and not $found_die_handler
and next; # ã¾ã die ãã³ãã©ãè¦ãã¦ããªã
my $frame = Tripletail::Error::Frame->new(
$level++, $filename, $line, $sub);
if ($this->{show_vars} and $PADWALKER_AVAILABLE) {
# ãã¼ã«ã«å¤æ°ãåå¾
my $mines = PadWalker::peek_my($pad_level);
my $ours = PadWalker::peek_our($pad_level);
while (my ($name, $ref) = each %$mines) {
$frame->set_variable("my $name", $ref);
}
while (my ($name, $ref) = each %$ours) {
$frame->set_variable("our $name", $ref);
}
#my @args;
lib/Tripletail/Error.pm view on Meta::CPAN
q[if ($@) {] . "\n" .
q[ die $@; # å度ã¨ã©ã¼ãçºçããã] . "\n" .
q[}</pre>],
);
}
elsif (not $PADWALKER_AVAILABLE) {
$t->node('detail')->node('vars-unavail')->setAttr(
REASON => 'raw',
);
$t->node('detail')->node('vars-unavail')->add(
REASON => '<a href="http://search.cpan.org/~robin/PadWalker/">PadWalker</a> ãå©ç¨ä¸å¯è½ã§ãã');
}
else {
foreach my $name (sort {$a cmp $b} keys %{$frame->vars_shallow}) {
$t->node('detail')->node('vars-avail')->node('var')->add(
NAME => $name,
VALUE => $frame->vars_shallow->{$name},
);
}
$t->node('detail')->node('vars-avail')->add;
}
( run in 1.015 second using v1.01-cache-2.11-cpan-05444aca049 )