Skip to content

Commit c26a616

Browse files
committed
add loguru code examples
1 parent a042c7e commit c26a616

File tree

5 files changed

+69
-0
lines changed

5 files changed

+69
-0
lines changed

loguru/basic_logging.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from loguru import logger
2+
3+
logger.debug("Debug message")
4+
logger.info("Info message")
5+
logger.error("Error message")

loguru/context_logging.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from loguru import logger
2+
import sys
3+
4+
logger.remove()
5+
logger.add(sys.stderr, format="{time} | {level} | {message} | {extra}")
6+
7+
user_logger = logger.bind(user_id="123")
8+
user_logger.info("User logged in")
9+
user_logger.info("User started a session")
10+
11+
with logger.contextualize(request_id="abc789"):
12+
logger.info("Processing request")
13+
logger.info("Request completed")
14+
15+
logger.info("Request is processed, this will not show extra context")

loguru/error_handling.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import sys
2+
from loguru import logger
3+
4+
logger.remove()
5+
logger.add(sys.stderr, format="{time} | {level} | {message} | {extra}", level="TRACE")
6+
7+
@logger.catch
8+
def perform_action(user, action):
9+
with logger.contextualize(user=user, action=action):
10+
logger.trace("Starting action")
11+
logger.info("Performing action")
12+
if action not in ["login", "logout"]:
13+
logger.trace("Invalid action detected")
14+
raise ValueError("Invalid action")
15+
logger.success("Action completed")
16+
17+
perform_action("alice", "delete")

loguru/file_logging.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from loguru import logger
2+
import time
3+
logger.add(sink="app.log", rotation="5 seconds", retention="1 minute")
4+
for i in range(100):
5+
logger.info(f"Processing item #{i}")
6+
time.sleep(2)

loguru/json_logging.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import json
2+
from loguru import logger
3+
4+
def simple_serializer(record):
5+
subset = {
6+
"time": record["time"].timestamp(),
7+
"level": record["level"].name,
8+
"message": record["message"],
9+
"context": record["extra"] # Include any bound context
10+
}
11+
return json.dumps(subset)
12+
13+
def add_serialization(record):
14+
record["extra"]["json_output"] = simple_serializer(record)
15+
16+
logger.remove()
17+
18+
logger = logger.patch(add_serialization)
19+
20+
logger.add(
21+
"simple_logs.json",
22+
format="{extra[json_output]}"
23+
)
24+
25+
logger.bind(user="john").info("User logged in")
26+
logger.bind(order_id="12345").info("Order processed")

0 commit comments

Comments
 (0)