Adaptive Application Logging Using Class-Relationship Weighting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing approaches for defining log data specificity in application execution are inadequate, leading to performance degradation or insufficient diagnostic help, as they require fixed parameters that do not adapt to dynamic application issues.

Innovation Solution

A method for dynamically determining logging levels based on relationships between classes in an object-oriented application, using a tree structure with weighted branches, and updating these levels based on user behavior and execution patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If fixed logging parameters are used in application execution, then implementation simplicity is maintained, but diagnostic effectiveness becomes insufficient for dynamic application issues

Engineering Contradiction:
Improvediagnostic effectivenessVSAvoidlogging system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements dynamic logging levels that automatically adjust based on runtime conditions, execution paths, and user interactions. Instead of fixed logging parameters, the system continuously adapts logging detail to match current application state, making the logging behavior dynamic rather than static.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes logging parameters (logging levels) based on identified execution paths and user behavior patterns. By monitoring and analyzing runtime parameters such as which code paths are executed and how users interact with the application, the system automatically adjusts logging detail to optimize diagnostic value.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If detailed logging is applied throughout the application, then diagnostic help is improved, but performance degradation occurs

Engineering Contradiction:
Improvediagnostic effectivenessVSAvoidapplication performance
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies different logging levels to different execution paths and code regions based on their diagnostic value. Instead of uniform detailed logging throughout the application, the system selectively applies detailed logging only to specific branches and paths that are most useful for diagnosis, leaving other areas with minimal logging.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system applies detailed logging partially - only to the extent necessary for effective diagnosis. By identifying critical execution paths and user interactions, the system applies detailed logging selectively to those specific areas rather than excessively logging throughout the entire application, thus maintaining performance while achieving diagnostic goals.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If minimal logging is used to maintain performance, then application speed is preserved, but diagnostic capability becomes insufficient

Engineering Contradiction:
Improveapplication performanceVSAvoiddiagnostic information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system uses feedback from runtime monitoring to continuously adjust logging levels. By observing execution paths, user interactions, and application behavior, the system receives feedback about what information would be most valuable for diagnosis, and automatically adjusts logging detail accordingly to capture that information without excessive overhead.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary analysis of execution paths and user behavior patterns to identify which areas require detailed logging. By pre-identifying critical paths and potential diagnostic needs based on historical data and runtime monitoring, the system prepares logging configurations in advance rather than reacting after performance or diagnostic issues arise.

Inventive Principle:
Principle #10Preliminary action

4Measurement precision

If adaptive logging based on execution paths is implemented, then diagnostic effectiveness is improved, but system complexity increases

Engineering Contradiction:
Improvediagnostic effectivenessVSAvoidlogging control mechanism complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements a self-service logging system that automatically determines appropriate logging levels without requiring manual configuration or complex external control. The system monitors its own execution, identifies diagnostic needs based on runtime behavior, and autonomously adjusts logging parameters, making the complex adaptive logic self-managing rather than requiring external orchestration.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12572340B2Controlling application logging
Publication Date: 2026.03.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12572340B2 patent drawing
  • US12572340B2 patent drawing
  • US12572340B2 patent drawing

AI summary

Controlling application logging, including: identifying one or more relationships between a plurality of classes of an object oriented application; generating a tree structure comprised of a plurality of nodes and a plurality of branches, where each of the plurality of branches is comprised of at least one node from the plurality of nodes, based on the one or more identified relationships, where a first one or more nodes of the plurality of nodes correspond to one or more classes of the object-oriented application; assigning a weight to each of the plurality of branches, based at least in part on an identified relationship corresponding to each of the one or more nodes comprising each of the plurality of branches; and determining a logging level to each branch of the plurality of branches, based on the assigned weight for each branch of the plurality of branches.