我正在尝试使用标准 python 日志库的 HTTPHandler 类来发送日志。我需要使用基本凭据(用户名和密码)发出 https 发布请求。这就是我如何设置 HTTPHandler-
host = 'example.com'
url = '/path'
handler = logging.handlers.HTTPHandler(host, url, method='POST', secure=True, credentials=('username','password'), context=None)
logger.addHandler(handler)
Run Code Online (Sandbox Code Playgroud)
但问题是,我的远程服务器中没有任何日志。我什至没有看到处理程序有任何异常。我是否错误地设置了处理程序参数?我可以使用简单的 pythong http 请求发送类似的日志-
url = 'https://username:password@example.com/path'
headers = {'content-type': 'application/json'}
jsonLog = { 'id': '4444','level': 'info', 'message': 'python log' };
r = requests.post(url, data = json.dumps(jsonLog), headers=headers)
Run Code Online (Sandbox Code Playgroud)
由于 json 内容类型,我是否需要以某种方式设置标题?如果是,那么我如何在 httphandler 中设置它?
更新
我想我应该更新我最终做的事情。经过多次搜索,我发现我可以通过覆盖 logging.Handler 的 emit() 来创建自定义处理程序。
class CustomHandler(logging.Handler):
def emit(self, record):
log_entry = self.format(record)
# some code....
url = 'url'
# some code....
return …Run Code Online (Sandbox Code Playgroud) 我正在使用ubuntu 10.10尝试安装libevent开发库libevent1和libevent2.我用下面的命令 -
apt-get install libevent-dev libevent1-dev
But it shows-
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libevent1-dev
Run Code Online (Sandbox Code Playgroud)
然后我用 - apt-get install libevent-dev
但它说libevent-dev已经是最新版本了.那是libevent2吗?我是root用户.我做错了吗?ubuntu 10.10是否支持libevent2?非常感谢您的帮助.谢谢
我使用主机名转换到IPv4地址gethostbyname()的socketPython编写的.有时,显示IP地址只需要很少的时间.我想知道每次查找是否有任何默认超时值.以下是我在程序中使用socket的方法 -
try:
addr = socket.gethostbyname(hostname)
except socket.gaierror:
addr = ""
print hostname+" : "+addr
Run Code Online (Sandbox Code Playgroud)
只需要添加另一个问题,是否有可能错过任何IP地址?有没有经验将大型主机名样本转换为IP地址?
我想将大小为50GB的大文本文件拆分成多个文件.文件中的数据是这样的 - [x = 0-9之间的任何整数]
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
...............
...............
Run Code Online (Sandbox Code Playgroud)
文件中可能有几十亿行,我想写每个文件30/40百万.我猜步骤是 -
我想知道,如何将所有这些步骤放在一个有效且更快的内存中.我在堆栈中看到了一些例子,但没有一个完全帮助我真正需要的东西.如果有人能帮助我,我真的很感激.
我正在尝试读取 JSON 数组。每次我尝试通过像这样传递 JSON 对象键来读取数组/值时 -
json[key]
Run Code Online (Sandbox Code Playgroud)
它显示了一个 Eslint 错误-
[eslint] Generic Object Injection Sink (security/detect-object-injection)
Run Code Online (Sandbox Code Playgroud)
我理解这是一个安全警告,因为密钥可能不存在。但是我如何解决这个警告?有没有更简单的方法来读取 Json 对象。我的计划是将“密钥”传递给函数并根据密钥读取json。
python ×3
eslint ×1
httphandler ×1
install ×1
javascript ×1
json ×1
libevent ×1
logging ×1
node.js ×1
python-2.7 ×1
python-3.x ×1
sockets ×1
split ×1
ubuntu ×1
ubuntu-10.10 ×1
unix ×1