小编saz*_*saz的帖子

如何为 Python 日志记录设置 HTTPHandler

我正在尝试使用标准 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)

python logging httphandler python-3.x python-requests

11
推荐指数
2
解决办法
6246
查看次数

在ubunutu安装libevent开发库

我正在使用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?非常感谢您的帮助.谢谢

ubuntu install libevent ubuntu-10.10

10
推荐指数
1
解决办法
3万
查看次数

在python中有socket.gethostbyname(hostname)的超时值吗?

我使用主机名转换到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地址?

python sockets

9
推荐指数
1
解决办法
6769
查看次数

将大文本文件(大约50GB)拆分为多个文件

我想将大小为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百万.我猜步骤是 -

  • 我要打开文件
  • 然后使用readline()必须逐行读取文件并同时写入新文件
  • 一旦达到最大行数,它将创建另一个文件并再次开始写入.

我想知道,如何将所有这些步骤放在一个有效且更快的内存中.我在堆栈中看到了一些例子,但没有一个完全帮助我真正需要的东西.如果有人能帮助我,我真的很感激.

python unix split python-2.7

8
推荐指数
2
解决办法
2万
查看次数

如何解决eslint“通用对象注入接收器”错误?

我正在尝试读取 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。

javascript json node.js eslint

5
推荐指数
2
解决办法
5849
查看次数