The opposite of logging.handlers.SocketHandler
Project description
ListeningSocketHandler
======================
The opposite of logging.handlers.SocketHandler
Example Usage
-------------
1. Create a logger
>>> import logging
>>> from ListeningSocketHandler import ListeningSocketHandler
>>> log = logging.getLogger()
>>> log.setLevel(logging.DEBUG)
2. Create some handlers
A normal StreamHandler that outputs to stderr and
a ListeningSocketHandler bound to port 12345.
>>> sh = logging.StreamHandler()
>>> sh.setLevel(logging.WARN)
>>> lh = ListeningSocketHandler(12345)
>>> lh.setLevel(logging.DEBUG)
3. Add handlers to the logger
>>> log.addHandler(sh)
>>> log.addHandler(lh)
4. Log some things
>>> log.info("An informational message")
>>> log.warn("A warning message")
A warning message
5. Connect to the logger, and log more detailed events
In a new shell, connect to the logger.
$ telnet localhost 12345
Back in python, use different log levels.
>>> log.critical("A critical message")
A critical message
>>> log.debug("A debugging message")
Watch the detailed stream in the telnet session.
A critical message
A debugging message
Making it work with Django
--------------------------
1. Install the handler
$ pip install LoggingSocketHandler
2. Add the ListeningSocketHandler to the LOGGING dict
LOGGING = {
...
'handlers': {
'listeningsocket': {
'level': 'DEBUG',
'class': 'ListeningSocketHandler.ListeningSocketHandler',
},
...
},
'loggers': {
'myapp': {
'handlers': ['listeningsocket'],
'level': 'DEBUG',
'propagate': True,
},
...
},
}
3. Run the server, and check the logs
$ ./manage.py runserver
ListeningSocketHandler on port: 40955
ListeningSocketHandler on port: 49830
Validating models...
0 errors found
Django version 1.4.2, using settings 'myproject.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
the default runserver is stupid, use foreman instead.
$ foreman start
17:55:11 web.1 | started with pid 24927
17:55:13 web.1 | ListeningSocketHandler on port: 36688
17:55:13 web.1 | Validating models...
17:55:13 web.1 |
17:55:13 web.1 | 0 errors found
17:55:13 web.1 | Django version 1.4.2, using settings 'myproject.settings'
17:55:13 web.1 | Development server is running at http://0.0.0.0:5000/
17:55:13 web.1 | Quit the server with CONTROL-C.
4. Connect to the socket (telnet, netcat etc.)
$ telnet localhost 36688
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
5. Use django normally, and watch the detailed logs scroll past your terminal,
or pipe them to a file for later analysis.
$ ncat localhost 36688 > detailed-log.txt
^C
Refresh the view, or perform the task to reproduce your bug, then break out
with Control-C when you've got the logs that you want.
======================
The opposite of logging.handlers.SocketHandler
Example Usage
-------------
1. Create a logger
>>> import logging
>>> from ListeningSocketHandler import ListeningSocketHandler
>>> log = logging.getLogger()
>>> log.setLevel(logging.DEBUG)
2. Create some handlers
A normal StreamHandler that outputs to stderr and
a ListeningSocketHandler bound to port 12345.
>>> sh = logging.StreamHandler()
>>> sh.setLevel(logging.WARN)
>>> lh = ListeningSocketHandler(12345)
>>> lh.setLevel(logging.DEBUG)
3. Add handlers to the logger
>>> log.addHandler(sh)
>>> log.addHandler(lh)
4. Log some things
>>> log.info("An informational message")
>>> log.warn("A warning message")
A warning message
5. Connect to the logger, and log more detailed events
In a new shell, connect to the logger.
$ telnet localhost 12345
Back in python, use different log levels.
>>> log.critical("A critical message")
A critical message
>>> log.debug("A debugging message")
Watch the detailed stream in the telnet session.
A critical message
A debugging message
Making it work with Django
--------------------------
1. Install the handler
$ pip install LoggingSocketHandler
2. Add the ListeningSocketHandler to the LOGGING dict
LOGGING = {
...
'handlers': {
'listeningsocket': {
'level': 'DEBUG',
'class': 'ListeningSocketHandler.ListeningSocketHandler',
},
...
},
'loggers': {
'myapp': {
'handlers': ['listeningsocket'],
'level': 'DEBUG',
'propagate': True,
},
...
},
}
3. Run the server, and check the logs
$ ./manage.py runserver
ListeningSocketHandler on port: 40955
ListeningSocketHandler on port: 49830
Validating models...
0 errors found
Django version 1.4.2, using settings 'myproject.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
the default runserver is stupid, use foreman instead.
$ foreman start
17:55:11 web.1 | started with pid 24927
17:55:13 web.1 | ListeningSocketHandler on port: 36688
17:55:13 web.1 | Validating models...
17:55:13 web.1 |
17:55:13 web.1 | 0 errors found
17:55:13 web.1 | Django version 1.4.2, using settings 'myproject.settings'
17:55:13 web.1 | Development server is running at http://0.0.0.0:5000/
17:55:13 web.1 | Quit the server with CONTROL-C.
4. Connect to the socket (telnet, netcat etc.)
$ telnet localhost 36688
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
5. Use django normally, and watch the detailed logs scroll past your terminal,
or pipe them to a file for later analysis.
$ ncat localhost 36688 > detailed-log.txt
^C
Refresh the view, or perform the task to reproduce your bug, then break out
with Control-C when you've got the logs that you want.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ListeningSocketHandler-0.1.0.tar.gz.
File metadata
- Download URL: ListeningSocketHandler-0.1.0.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8a8bb933d4841e5a02269b05bce87b35838224e74678604fb9cd787b6c68d5f
|
|
| MD5 |
f6866317c3cc9b81e3729a441c1b2dbd
|
|
| BLAKE2b-256 |
b59855ecabfaa20d50f0f26ad72696037eb3342a7546a0ac329b935fb2ed0e7d
|