Use my last session id:
What's this?

This website provides a way to send arbitrary text to the browser from any program with zero setup.


How do I use it?

Click on the "Start logging" button above, copy the code snippet and run it anywhere in your program. The output will show up in your browser.


How does it work?

The code snippet you can copy after you click "Start logging" above sends a request to the https://stdout.online/log endpoint. The web server server passes it to a WebSocket server which your browser is connected to. That means you can use stdout.online with any programming language capable of making HTTPS or even just plain TCP* connections. The maximum number of logged messages is 1000. After reaching this limit the oldest messages will be deleted as new messages arrive. If you want to keep a message, you can pin it. Refreshing the page will clear all messages with no way to recover them.

*A TCP server is available if you cannot use HTTPS, but keep in mind the connection is not encrypted. The server is available at tcp://stdout.online:10660.


Is it safe?

No. While all the connections are encrypted (unless you use the TCP server), you shouldn't use it for any sensitive data for two reasons:

  • Anyone who guesses your session id can see your log output and you won't know about it.
  • Any data you send to the stdout.online HTTPS or TCP server may end up in logs and memory dumps. Having said that, nothing is intentionally stored on the server.

y tho

This is the kind of tool which I "shouldn't" need, but nevertheless over the years I found myself in situations where it would have been a godsend. On multiple occasions I urgently needed to debug something but I didn't have a quick way to output stuff - maybe I didn't have ssh access, maybe the script ran in the background and the output was redirected to /dev/null, maybe logging was not injected in the class I was looking at... In each case it probably only took a few minutes to find a workaround, but that was valuable time I would have preferred to spend actually debugging. What I needed was to be able to just paste a one-liner literally anywhere in the code to output any value I wanted. So I decided to write an app that allows me to do just that.


Choose your programming language and use the provided code snippet to send log messages to this window.

Close
call_user_func(function($m){file_get_contents('https://stdout.online/log/',0,stream_context_create(['http'=>['header'=>['Content-Type:'],'content'=>json_encode(['m'=>$m,'s'=>'{%%sessionId%%}'])]]));},
'Your message goes here');
Copy code snippet
def stdout_online(m):
    import urllib;import json;urllib.urlopen('https://stdout.online/log/',json.dumps({'m':m,'s':'{%%sessionId%%}'}))
stdout_online("Your message goes here")
Copy code snippet
def stdout_online(m):
    import urllib.request;import json;urllib.request.urlopen('https://stdout.online/log/',bytes(json.dumps({'m':m,'s':'{%%sessionId%%}'}),'UTF-8'))
stdout_online("Your message goes here")
Copy code snippet
Proc.new{|m|require 'net/http';r=Net::HTTP::Post.new('/log/');r.body={'m'=>m,'s'=>'{%%sessionId%%}'}.to_json;h=Net::HTTP.new('stdout.online',443);h.use_ssl=true;h.request(r)}
.call('Your message goes here')
Copy code snippet
coming soon
Log frozen. All new messages are ignored. Discarded messages: 0.