Skip to main content

日志组件

Project description

Logkk

易于使用线程安全的日志模块

安装

pip install logkk

基础使用:

from logkk import LogManager

log_manager = LogManager()
log_manager.info("this is a info log")
log_manager.warn("this is a warn log")

logger = log_manager.get_logger(name="hello")
logger.info("this is a info log")
logger.warn("this is a warn log")

使用文件记录日志:

from logkk import LogManager, Level
from logkk.handlers import FileHandler

fmt = "[{datetime}] [{level}] [{name}] {message}"
handler = FileHandler(filepath="/var/log/demo.log")
log_manager = LogManager(level=Level.INFO, fmt=fmt, handlers=[handler])
logger = log_manager.get_logger(name="hello")
logger.info("this is a info log")
logger.warn("this is a warn log")

技术方案说明

写日志文件主要有两种方式:

  1. 每次写日志时打开文件,写完后关闭文件;
  2. 保持一个文件句柄,每次写日志时直接写入文件;

很明显,第二种方式效率更高,但是一直保持一个打开的文件对象,会不会有问题呢?
查询了一些资料后发现,并没有什么问题,因为:

当进程退出时,不管是正常退出还是异常退出,亦或是进程被强制杀掉,操作系统都会回收给进程分配的资源, 也就是说系统会关闭这个文件句柄。

当进程异常退出时,为了保证我们写的日志不丢失,每次写日志时需要调用flush将日志落盘。因为write只是将内容写到系统缓冲区,并没有写到磁盘上, 当进程异常退出时,系统缓冲区的数据会丢失,而flush就是将系统缓冲区的内容写到磁盘上,并清空系统缓冲区。

另外,如果多线程写日志,会出现写入混乱的情况,所以需要加锁,虽然这样会影响效率,但是更加安全可靠。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logkk-0.6.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

logkk-0.6.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file logkk-0.6.0.tar.gz.

File metadata

  • Download URL: logkk-0.6.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for logkk-0.6.0.tar.gz
Algorithm Hash digest
SHA256 d7da7178e9d8798557c166f7ef8af2de9c346793ffd62ffb94a35a2415475a96
MD5 95f6784e94aabce91cd85cf79f33d0eb
BLAKE2b-256 3750d314e2c7828a7e96216e79f832cf4d29bc3c4038205e03e4a9763f2451c4

See more details on using hashes here.

File details

Details for the file logkk-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: logkk-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for logkk-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de4a36ae403ed40ffc6b7a0599911c0569f38949830739c6a900e29b4535f933
MD5 d9e9e04c15bdd74d7003923fc80fa4f4
BLAKE2b-256 1d8a389e0f500834f7380c62de3138e47d3c96ab3692633affd443889b86e724

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page