Log Queue
Project description
logqueue
Log Queue
Initialize
Declare thread function.
def logger_function(log_dict):
print(log_dict)
# ...
output:
{'log_type': 'exception',
'timestamp': 1700000000.100001,
'process_id': 1234,
'thread_id': 1234567890,
'cpu_usage': 12, # if exist psutil
'memory_usage': 12, # if exist psutil
'file_name': 'test.py',
'file_lineno': 1,
'text': 'start',
'trace_back': 'error'} # if exception
import logqueue
logqueue.initialize(logger_function)
# ...
Close and Join
logqueue.close()
logqueue.join()
Signal
import signal
import logqueue
def signal_handler(_, frame):
logqueue.close()
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGABRT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
# ...
logqueue.join()
Logging
logqueue.put_info("start")
# or
logqueue.info("start")
**kwargs
logqueue.info("hi", alarm_meesage="alarm", input_database=True)
log_dict = logqueue.get()
print(log_dict)
output:
{'timestamp': 1700000000.100001,
'process_id': 1234,
'thread_id': 1234567890,
'log_type': 'information',
'file_name': 'test.py',
'file_lineno': 1,
'text': 'hi',
'alarm_meesage': "alarm",
'input_database': True}
Log types
logqueue.put(log_type:str, *objs:object, **kwargs)
logqueue.info(*objs:object, **kwargs) # or put_info() and == put(LogType.INFORMATION,)
logqueue.debug(*objs:object, **kwargs) # or put_debug() and == put(LogType.DEBUG,)
logqueue.warning(*objs:object, **kwargs) # or put_warning() and == put(LogType.WARNING,)
logqueue.exception(*objs:object, **kwargs) # or put_exception() and == put(LogType.EXCEPTION,)
logqueue.signal(*objs:object, **kwargs) # or put_signal() and == put(LogType.SIGNAL,)
Parse
log_str = logqueue.parse(log_dict)
print(log_str)
output:
2023-11-15 07:13:20.100001 12%:CPU 12%:Mem 234:PID 4567890:TID info test.py:1 start
Parse Formatter
log_formatter = logqueue.get_log_formatter() # default log formatters
# {date} {time} {process_id:0{process_id_max_length}d}:PID {thread_id:0{thread_id_max_length}d}:TID {file_name:>{file_name_length}}:{file_lineno:<{file_lineno_length}} {log_type:{log_type_max_length}} {text}
logqueue.clear_log_formatter()
date_formatter = f"{{{logqueue.LogFormatterKey.date}}}"
time_formatter = f"{{{logqueue.LogFormatterKey.time}}}"
append_log_formatter(date_formatter)
append_log_formatter(time_formatter)
log_formatter = logqueue.get_log_formatter()
# {date} {time}
pid_formatter = logqueue.get_process_id_formatter()
# == f"{{{logqueue.LogFormatterKey.process_id}:0{{{logqueue.LogFormatterKey.process_id_max_length}}}d}}:PID"
file_name_formatter = f"{{{logqueue.LogFormatterKey.file_name}:>{{{logqueue.LogFormatterKey.file_name_length}}}}}"
text = logqueue.get_text_formatter()
logqueue.append_log_formatters(pid_formatter, file_name_formatter, text)
log_formatter = logqueue.get_log_formatter()
# {date} {time} {process_id:0{process_id_max_length}d}:PID {file_name:>{file_name_length}} {text}
logqueue.replace_log_formatter(pid_formatter)
log_formatter = logqueue.get_log_formatter()
# {date} {time} {file_name:>{file_name_length}}
logqueue.replace_log_formatter(time_formatter, pid_formatter)
log_formatter = logqueue.get_log_formatter()
# {date} {process_id:0{process_id_max_length}d}:PID {file_name:>{file_name_length}}
logqueue.set_date_formatter("%y-%m-%d")
date_formatter = logqueue.get_date_formatter()
# %y-%m-%d
logqueue.set_process_id_formatter(f"{{{logqueue.LogFormatterKey.process_id}:0{{{logqueue.LogFormatterKey.process_id_max_length}}}d}}:PID")
process_id_formatter = logqueue.get_process_id_formatter()
# {process_id:0{process_id_max_length}d}:PID
Keys
class LogDictKey:
log_type
timestamp
process_id
thread_id
cpu_usage
memory_usage
file_name
file_lineno
text
trace_back
class LogFormatterKey:
date
time
timestamp
process_id
process_id_max_length
thread_id
thread_id_max_length
cpu_usage
cpu_usage_max_length
memory_usage
memory_usage_max_length
log_type
log_type_max_length
file_info
file_name
file_name_length
file_lineno
file_lineno_length
text
trace_back
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file logqueue-0.0.3.tar.gz.
File metadata
- Download URL: logqueue-0.0.3.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d07d75aa3ece4643bff2597d99cc569f47f07589a50f1d21c3f7823de1fc2b6
|
|
| MD5 |
01bb5c95397bd5ac10c21ceb11c03b0f
|
|
| BLAKE2b-256 |
377404e728016fd514dcd157a77fa9631489c7647f1846c858482983ebad2001
|
File details
Details for the file logqueue-0.0.3-py3-none-any.whl.
File metadata
- Download URL: logqueue-0.0.3-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bb46be090de3353b3cb1eaee665f2c25b633be43abfcf145969d46ba8587398
|
|
| MD5 |
564b25f3960c2d8de63e1944a7dc43ec
|
|
| BLAKE2b-256 |
7b3431cf53c8013f4d64fa94b4119f8f6d789a6a193ea1c5805d3732dfc931fb
|