summaryrefslogtreecommitdiff
path: root/posts/2011-02-20-psgichrome.org
diff options
context:
space:
mode:
Diffstat (limited to 'posts/2011-02-20-psgichrome.org')
-rw-r--r--posts/2011-02-20-psgichrome.org82
1 files changed, 82 insertions, 0 deletions
diff --git a/posts/2011-02-20-psgichrome.org b/posts/2011-02-20-psgichrome.org
new file mode 100644
index 0000000..8f4bb6a
--- /dev/null
+++ b/posts/2011-02-20-psgichrome.org
@@ -0,0 +1,82 @@
+Earlier this month, I've read about this extension:
+[[http://www.chromephp.com/][chromePHP]].
+
+The principle of this extension is to allow you to log from your PHP
+application to chrome. You may not be aware, but this is something you
+already have with every web application if you're using Plack. And not
+only for Chrome, but every webkit navigator, and Firefox too!
+
+Let's mimic their page.
+
+** Installation
+
+1. install
+ [[http://search.cpan.org/perldoc?Plack::Middleware::ConsoleLogger][Plack::Middleware::ConsoleLogger]]
+ with =cpanm Plack::Middleware::ConsoleLogger=
+2. no step 2
+3. no step 3
+4. write a simple PSGI application and log
+
+#+BEGIN_SRC perl
+ use strict;
+ use warnings;
+
+ use Plack::Builder;
+
+ my $app = sub {
+ my $env = shift;
+ my $content = "<html><body>this is foo</body></html>";
+ foreach my $k ( keys %$env ) {
+ if ( $k =~ /HTTP_/ ) {
+ $env->{'psgix.logger'}->({
+ level => 'debug',
+ message => "$k => " . $env->{$k},
+ });
+ }
+ }
+ $env->{'psgix.logger'}->({
+ level => 'warn',
+ message => 'this is a warning',
+ });
+ $env->{'psgix.logger'}->({
+ level => 'error',
+ message => 'this is an error',
+ });
+ return [ 200, [ 'Content-Type' => 'text/html' ], [$content] ];
+ };
+
+ builder {
+ enable "ConsoleLogger";
+ $app;
+ }
+#+END_SRC
+
+Load this application with plackup: =plackup chromeplack.pl=
+
+point your browser to http://localhost:5000, activate the javascript
+console.
+
+If this works correctly, you should have a smiliar output in your
+console:
+
+** Dancer
+
+I don't know for other framework, but you can also log to your browser
+with [[http://perldancer.org/][Dancer]].
+
+First, you need to install
+[[http://search.cpan.org/perldoc?Dancer::Logger::PSGI][Dancer::Logger::PSGI]],
+then, in your application, you need to edit the environment file. You'll
+certainly want to change 'development.yml'.
+
+#+BEGIN_EXAMPLE
+ logger: "PSGI"
+ plack_middlewares:
+ -
+ - ConsoleLogger
+#+END_EXAMPLE
+
+Now you can start your application (running in a Plack environment, of
+course), and next time you'll use 'warning' or 'debug' or any other
+keyword from Dancer::Logger, the message will end up in your javascript
+console.