增加服务器tcp处理时间戳,如何为Raspberry Pi的Python TCP服务器添加带有时间戳的文件的日志记录...

要向带有时间戳的文件添加日志记录,可以使用logging模块:import logging

logging.basicConfig(level=logging.INFO,

filename='myserver.log', # log to this file

format='%(asctime)s %(message)s') # include timestamp

logging.info("some message")

如果运行代码;您应该在myserver.log(+/-您的时区和当前时间)中看到:2013-12-24 09:20:17,739 some message

下面是一个完整的TCP服务器示例,它用"Sent by Client: "短语将从客户端接收到的每一行前置并发送回:#!/usr/bin/env python

import logging

import sys

from SocketServer import ThreadingTCPServer, StreamRequestHandler

info = logging.getLogger(__name__).info

class EchoLineHandler(StreamRequestHandler):

def handle(self):

info("handling request from %s", self.client_address)

# prepend each line (b'\n') and send it back

for line in self.rfile:

self.wfile.write(b"Sent by Client: ") # assume ascii-based encoding

self.wfile.write(line)

info("done %s", self.client_address)

def test(ServerClass=ThreadingTCPServer, HandlerClass=EchoLineHandler):

# configure logging

logging.basicConfig(level=logging.INFO,

filename='server.log', # log to this file

format='%(asctime)s %(message)s') # include timestamp

# parse command line arguments

host, port = 'localhost', 8826

if len(sys.argv) > 1:

host_, separator, port_ = sys.argv[1].rpartition(":")

port = int(port_)

if separator: # if ":" in sys.argv[1]

host = host_ # accept any host, including empty

# listen for connections

server = ServerClass((host, port), HandlerClass)

info("Serving on %s port %s", *server.server_address)

try:

server.serve_forever()

finally:

info("quit.")

if __name__=="__main__":

test()

如果代码保存在echo_line_server.py中,则运行服务器:$ python -mecho_line_server localhost:8826 & tail -F server.log

2013-12-24 17:09:38,089 Serving on 127.0.0.1 port 8826

要运行客户端:$ echo abc | nc localhost 8826

Sent by Client: abc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值