gpt4 book ai didi

python - 如何将 xmlrpc 服务器的日志输出重定向到某个文件

转载 作者:太空狗 更新时间:2023-10-30 00:45:14 25 4
gpt4 key购买 nike

我正在使用 SimpleXMLRPCServer 模块来创建一个 rpc 服务器。每当我向服务器发送任何请求时,它都会向我显示连接请求。我怎样才能将此输出重定向到某个文件,以便稍后可以看到对服务器发出的请求。

这是我的服务器脚本

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
import logging
import os
import string
from subprocess import Popen,PIPE
import xmlrpclib
# Set up logging
logging.basicConfig(level=logging.DEBUG, filename = 'RPCServer.log')
class FileOperation():
'''Class to perform file operation on the Remote machine'''
def __init__(self):
self.fh = None
self.os = os #adding built-in OS module functionality
self.string = string #adding built-in String module functionality

# Restrict to a particular path.

class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/RPC2',)
# Create server
server = SimpleXMLRPCServer(("localhost", 8000), requestHandler = RequestHandler,allow_none = True, logRequests = True)
server.register_introspection_functions()
server.register_instance(FileOperation(),allow_dotted_names = True )


# Run the server's main loop
try:
print 'Use Control-C to exit'
server.serve_forever()
except KeyboardInterrupt:
print 'Exiting'

每当我发送任何请求时,我都会得到这样的 o/p -

Use Control-C to exit
127.0.0.1 - - [11/Dec/2013 11:34:29] "POST /RPC2 HTTP/1.1" 200 -
127.0.0.1 - - [11/Dec/2013 11:34:30] "POST /RPC2 HTTP/1.1" 200 -
127.0.0.1 - - [11/Dec/2013 11:34:31] "POST /RPC2 HTTP/1.1" 200 -
127.0.0.1 - - [11/Dec/2013 11:34:32] "POST /RPC2 HTTP/1.1" 200 -
127.0.0.1 - - [11/Dec/2013 11:34:33] "POST /RPC2 HTTP/1.1" 200 -
127.0.0.1 - - [11/Dec/2013 11:34:34] "POST /RPC2 HTTP/1.1" 200 -
127.0.0.1 - - [11/Dec/2013 11:34:35] "POST /RPC2 HTTP/1.1" 200 -

如何将此 o/p 重定向到某个文件。我在日志配置中设置了文件名,但 o/p 不在那里

最佳答案

消息被写入sys.stderr。你也可以

  1. 重定向 stderr,或者
  2. SimpleXMLRPCRequestHandler 的子类中覆盖方法 log_message 并根据需要使用 logging

原始方法是 BaseHTTPServer 模块中的 BaseHTTPRequestHandler.log_message ,如下所示:

def log_message(self, format, *args):
"""Log an arbitrary message.

This is used by all other logging functions. Override
it if you have specific logging wishes.

The first argument, FORMAT, is a format string for the
message to be logged. If the format string contains
any % escapes requiring parameters, they should be
specified as subsequent arguments (it's just like
printf!).

The client host and current date/time are prefixed to
every message.

"""

sys.stderr.write("%s - - [%s] %s\n" %
(self.address_string(),
self.log_date_time_string(),
format%args))

关于python - 如何将 xmlrpc 服务器的日志输出重定向到某个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20511747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com