Skip to content

Commit 331f8d1

Browse files
committed
3. update morebuiltins.cmd.log_server to support close idle file handlers after 300 seconds.
4. add `get_logger` to `morebuiltins.cmd.log_server` to get a logger with `SocketHandler` to send logs to `LogServer`.
1 parent c40ef76 commit 331f8d1

File tree

4 files changed

+264
-105
lines changed

4 files changed

+264
-105
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
### 1.3.4 (2025-09-17)
44
1. fix `morebuiltins.utils.gen_id` wrong length issue.
55
2. fix `morebuiltins.funcs.LineProfiler` to handle nested function calls correctly.
6+
3. update `morebuiltins.cmd.log_server` to support close idle file handlers after 300 seconds.
7+
4. add `get_logger` to `morebuiltins.cmd.log_server` to get a logger with `SocketHandler` to send logs to `LogServer`.
68

79
### 1.3.3 (2025-09-01)
810
1. add `morebuiltins.logs.LogHelper.handle_crash` to log uncaught exceptions.

doc.md

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2265,10 +2265,32 @@ Demo::
22652265

22662266
```python
22672267

2268-
Server side:
2269-
python -m morebuiltins.cmd.log_server --log-dir=./logs --host 127.0.0.1 --port 8901
2268+
### Server demo1:
2269+
start log server in terminal, only collect logs and print to console
2270+
> python -m morebuiltins.cmd.log_server
22702271

2271-
Client side:
2272+
### Server demo2:
2273+
custom options to log to "logs" directory, default rotates at 10MB with 5 backups
2274+
> python -m morebuiltins.cmd.log_server --log-dir=./logs --host 127.0.0.1 --port 8901
2275+
2276+
### Server demo3:
2277+
python code
2278+
2279+
```python
2280+
import asyncio
2281+
2282+
from morebuiltins.cmd.log_server import LogServer
2283+
2284+
2285+
async def main():
2286+
async with LogServer() as ls:
2287+
await ls.wait_closed()
2288+
2289+
2290+
asyncio.run(main())
2291+
```
2292+
2293+
### Client demo1:
22722294

22732295
```python
22742296
import logging
@@ -2296,27 +2318,24 @@ for _ in range(5):
22962318
# [client] 2024-08-10 19:30:07,114 - temp3.py - hello world!
22972319
```
22982320

2299-
More docs:
2300-
python -m morebuiltins.cmd.log_server -h
2301-
usage: log_server.py [-h] [--host HOST] [--port PORT] [--log-dir LOG_DIR] [--name NAME] [--server-log-args SERVER_LOG_ARGS] [--handle-signals HANDLE_SIGNALS] [--max-queue-size MAX_QUEUE_SIZE]
2302-
[--max-queue-buffer MAX_QUEUE_BUFFER] [--log-stream LOG_STREAM]
2321+
### Client demo2:
23032322

2304-
options:
2305-
-h, --help show this help message and exit
2306-
--host HOST
2307-
--port PORT
2308-
--log-dir LOG_DIR log dir to save log files, if empty, log to stdout with --log-stream
2309-
--name NAME log server name
2310-
--server-log-args SERVER_LOG_ARGS
2311-
max_size,max_backups for log files, default: 10485760,5 == 10MB each log file, 1 name.log + 5 backups
2312-
--handle-signals HANDLE_SIGNALS
2313-
--max-queue-size MAX_QUEUE_SIZE
2314-
max queue size for log queue, log will be in memory queue before write to file
2315-
--max-queue-buffer MAX_QUEUE_BUFFER
2316-
chunk size of lines before write to file
2317-
--log-stream LOG_STREAM
2318-
log to stream, if --log-stream='' will mute the stream log
2323+
```python
2324+
from morebuiltins.cmd.log_server import get_logger
2325+
2326+
logger = get_logger("dir/test.log")
2327+
# logger = get_logger("dir/test.log", host="localhost", port=8901)
2328+
logger.debug("debug")
2329+
logger.info("info")
2330+
logger.warning("warning")
2331+
# 2025-10-11 01:30:35,151 | DEBUG | log_server.py:416 - Set formatter for logger 'dir/test.log': %(asctime)s | %(levelname)-5s | %(filename)+8s:%(lineno)+3s - %(message)s
2332+
# 2025-10-11 01:30:35,151 | DEBUG | temp.py: 4 - debug
2333+
# 2025-10-11 01:30:35,152 | INFO | temp.py: 5 - info
2334+
# 2025-10-11 01:30:35,152 | WARN | temp.py: 6 - warning
2335+
```
23192336

2337+
More docs:
2338+
> python -m morebuiltins.cmd.log_server -h
23202339

23212340
```
23222341

0 commit comments

Comments
 (0)