frappe-core-logging

Standardize Frappe logging with frappe.logger and frappe.log_error across v14–v16.

163|53|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package --skill frappe-core-logging
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-core-logging
Source: https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package/tree/main/skills/source/core/frappe-core-logging
Command: npx skills add https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package --skill frappe-core-logging

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Developers face inconsistent logging, silent failures, and unsafe production logging in Frappe apps. This guide standardizes the use of frappe.logger, frappe.log_error, and Sentry integration to improve observability and reliability.

Core Features & Use Cases

  • Module-level logging with frappe.logger to produce per-module log files and richer context.
  • Centralized error reporting via frappe.log_error with optional trace capture and metadata.
  • Production-ready monitoring and third-party error tracking through Sentry integration.
  • Guidance on avoiding common pitfalls like using print() in production and leaking sensitive data.

Quick Start

Install this skill and begin using module-scoped logging with frappe.logger('module_name') along with frappe.log_error for errors, then enable Sentry monitoring for production visibility.

Frequently Asked Questions about frappe-core-logging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I standardize logging in Frappe apps to avoid silent failures?

Standardize Frappe logging by using module-scoped frappe.logger('module_name') for routine logs and frappe.log_error for exceptions. This replaces inconsistent print statements and ensures per-module files, structured metadata, and trace context for reliable observability across deployments.

What is the best way to integrate Sentry error tracking with Frappe?

Integrate Sentry with Frappe by combining frappe.log_error for centralized error reporting with optional Sentry integration for production monitoring. This captures traces and structured error metadata, extending visibility beyond default Frappe logs into third-party error tracking dashboards.

Can I use frappe.logger for production monitoring across Frappe v14 to v16?

Yes, frappe.logger supports production monitoring across Frappe v14 through v16. It provides module-level logging with per-module log files and richer context, ensuring consistent observability without relying on unsafe print statements in live deployment environments.

Why does using print() in production Frappe apps cause weak error reporting?

Using print() in production Frappe apps causes weak error reporting because it bypasses structured logging, lacks trace context, and risks leaking sensitive data. Replacing print() with frappe.logger and frappe.log_error ensures centralized, safe, and observable error metadata capture.

Does Frappe logging support data masking for sensitive production logs?

Yes, standardized Frappe logging supports data masking to prevent leaking sensitive data in production. By applying clear requirements for module-scoped logs and structured error metadata, the system ensures safe observability while handling trace context securely across deployments.