
Server side logging to Chrome console from PHP and Python - J2triplezero
http://craig.is/writing/chrome-logger
======
bsimpson
Another excellent option, if you'd rather not have to use Chrome dev tools:

<https://github.com/mgood/flask-debugtoolbar>

It will include a fixed positioned panel on your page including a bunch of
server-side inspection, including request vars, environ variables, and logs.
It works with Flask, and there's a version for Django as well.

------
j_s
<http://getglimpse.com/>

    
    
      > Glimpse gathers and presents detailed diagnostic information about the 
      > behavior and execution of your web application.
    
      > It is used in a similar manner to client side diagnostics and debugging 
      > tools (such as FireBug or Chrome Developer Tools), but instead focuses on 
      > concepts such as server configuration, model binding, url routing, and 
      > execution profiling.
    

Currently implemented for .NET; it has a pretty shiny cross-browser UI which
might be useful as a target instead of the Chrome console.

~~~
hxseven
They should really put some screenshots on the website, everybody wants
screenshots... had to use Google Images to see how it looks ;)

For everybody who also wants to see screenshots, found some in this blog
article:
[http://blog.getglimpse.com/2013/03/27/glimpse-1-2-released-w...](http://blog.getglimpse.com/2013/03/27/glimpse-1-2-released-
with-support-for-entity-framework-ado/)

The interface looks quite nice...

------
toddmorey
This is fantastic. There have been a few times where I've thought to myself it
would be handy to have a view of server-side events in the inspector. Very
eager to spend some time later today to get this set up.

------
Mahn
Happy to see this here, been using ChromePHP for quite some time now. The
_only_ complain I have is how it lacks support for styled logs[1], since it
could come handy to apply different colors to different segments of the logs
when they start to build up, but otherwise I'm a fan.

[1] <https://plus.google.com/+AddyOsmani/posts/TanDFKEN9Kn>

~~~
craigc
With the new version I added support for setting some colors! Right click on
the extension icon and select options. I may add more options in the future as
well.

~~~
Mahn
I was talking more about the ability to style specific log lines
programmatically. So that one could have sql queries blue, redis commands red,
etc etc.

------
pindi
You may want to mention that the Python library is not thread-safe, since it
essentially uses a global variable to store the logged statements until the
middleware writes them to the response. Shouldn't be a problem when used with
a development server, though.

~~~
craigc
Thanks. I will add it to the GitHub wiki. I should also point out that in
general this stuff was not designed to run in production.

~~~
pekk
In general, it seems like people have a hard time understanding what doesn't
belong in production.

------
whichdan
I've been using this with ChromePhp and it works fantastically well. It sends
all of the data as part of the page's header, so you don't have to worry about
something hacky like injected console.log calls.

------
thebuccaneer
Isn't this a bit like FirePHP (except FirePHP has more browser support) ?

~~~
Mahn
Yes, but FirePHP was definitively not available for Chrome when ChromePHP (now
Chrome Logger) first came out, and as far as I can see
(<http://www.firephp.org/>) it doesn't officially support it yet.

------
ericcholis
Very useful if you don't want to or can't use xdebug for PHP.

~~~
Mahn
Actually if you implement logging extensively throughout your app, you might
find you need to use xdebug much less. I used xdebug often before implementing
ChromePHP, but nowadays I rarely do, since the vast majority of the issues are
easy to pinpoint with the logs.

------
addandsubtract
Have been using this for a while debugging PHP. Amazingly useful.

~~~
craigc
Thanks! I basically rewrote the extension, added Python support, support for
colors in the console, and added a tech spec to make it easy to implement the
protocol in any language.

<http://craig.is/writing/chrome-logger/techspecs>

------
karolisd
Is there anything like this for Ruby?

~~~
craigc
It's an open protocol so someone just has to write a gem for it. My friend
Kevin at VHX is working on a ruby port.

<https://twitter.com/ksheurs>

------
coolsunglasses
I wonder how hard it would be to use the reflect package to make this work in
Go?

~~~
hxseven
Shouldn't be that hard. You just need to encode the data in JSON and BASE64
and add it as HTTP header. Just look at the existing libraries, they don't
seem to be that complicated.

