{"id":97865,"date":"2025-04-29T13:11:03","date_gmt":"2025-04-29T07:41:03","guid":{"rendered":"https:\/\/cloudfoundation.com\/blog\/?p=97865"},"modified":"2025-05-01T17:34:56","modified_gmt":"2025-05-01T12:04:56","slug":"aem-components","status":"publish","type":"post","link":"https:\/\/cloudfoundation.com\/blog\/aem-components\/","title":{"rendered":"AEM Components | AEM Logs"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Why_Extra_Client_Libraries_Matter_in_AEM\" >Why Extra Client Libraries Matter in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Understanding_AEMs_Coral_3_Framework\" >Understanding AEM\u2019s Coral 3 Framework<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Debugging_and_Enhancing_Dialog_Behavior_in_AEM\" >Debugging and Enhancing Dialog Behavior in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#AEM_Components_Parent-Child_Relationship_Explained\" >AEM Components: Parent-Child Relationship Explained<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Mastering_Overrides_in_AEM_Components\" >Mastering Overrides in AEM Components<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Understanding_AEM_Node_Inheritance\" >Understanding AEM Node Inheritance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Customizing_AEM_Child_Components\" >Customizing AEM Child Components<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Exploring_AEM_Overriding_and_Overlays\" >Exploring AEM Overriding and Overlays<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Advantages_of_Overlays_in_AEM\" >Advantages of Overlays in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Understanding_Performance_Logs_in_AEM\" >Understanding Performance Logs in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Leveraging_Access_Logs_in_AEM\" >Leveraging Access Logs in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Using_System_Logs_for_Server_Insights_in_AEM\" >Using System Logs for Server Insights in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Tracking_User_Activity_with_Audit_Logs_in_AEM\" >Tracking User Activity with Audit Logs in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Why_Access_and_Audit_Logs_Matter_in_AEM\" >Why Access and Audit Logs Matter in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Understanding_AEM_Logs_for_Better_Troubleshooting\" >Understanding AEM Logs for Better Troubleshooting<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Using_AEM_History_and_Audit_Logs\" >Using AEM History and Audit Logs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Creating_Custom_Logs_in_AEM\" >Creating Custom Logs in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Managing_Log_Files_in_AEM\" >Managing Log Files in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Logging_Best_Practices_in_AEM\" >Logging Best Practices in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Understanding_Logging_in_AEM\" >Understanding Logging in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#How_to_Utilize_Logs_Effectively_in_AEM\" >How to Utilize Logs Effectively in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Managing_Log_Levels_in_AEM\" >Managing Log Levels in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Troubleshooting_Issues_Using_AEM_Logs\" >Troubleshooting Issues Using AEM Logs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/#Optimizing_Logging_for_Better_Performance_in_AEM\" >Optimizing Logging for Better Performance in AEM<\/a><\/li><\/ul><\/nav><\/div>\n\n<h2><span class=\"ez-toc-section\" id=\"Why_Extra_Client_Libraries_Matter_in_AEM\"><\/span><strong>Why Extra Client Libraries Matter in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Loading client libraries at just the right moment in AEM requires more precision. However, loading them from HTML only works well if triggered upon page refresh or dialog save.<\/p>\n<p>Instead, I added an &#8220;extraClientLibs&#8221; property to the dialog&#8217;s configuration so the library loads automatically each time it opens.<\/p>\n<p>AEM makes such tasks effortless thanks to its powerful client library system.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEMs_Coral_3_Framework\"><\/span><strong>Understanding AEM\u2019s Coral 3 Framework<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The Coral 3 framework was an integral component in this setup. It organised fields within dialogs using distinct classes, making it easy to locate elements such as checkboxes, first name, and last name fields.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Library-System.png\" alt=\"AEM Training\" width=\"800\" height=\"2425\" \/><\/p>\n<p>Coral 3 is the latest generation of AEM, providing a reliable foundation for designing and managing components.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Debugging_and_Enhancing_Dialog_Behavior_in_AEM\"><\/span><strong>Debugging and Enhancing Dialog Behavior in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Debugging dialogue behavior in AEM can be tricky. I noticed that client libraries weren&#8217;t loading correctly without proper setup.<\/p>\n<p>By configuring extra client libraries and writing targeted JavaScript code, to create a smoother user <a href=\"https:\/\/cloudfoundation.com\/blog\/aem-interview-questions\/\" target=\"_blank\" rel=\"noopener\"><strong>experience in AEM<\/strong><\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEM_Components_Parent-Child_Relationship_Explained\"><\/span><strong>AEM Components: Parent-Child Relationship Explained<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Think of AEM components like <a href=\"https:\/\/cloudfoundation.com\/blog\/javafx-interview-questions\/\" target=\"_blank\" rel=\"noopener\"><strong>Java<\/strong><\/a> classes with inheritance concepts&#8211;except they use AEM&#8217;s powerful concept.<\/p>\n<p>Child components inherit everything they can from their parents &#8211; HTML pages, dialogues and even client libraries.<\/p>\n<p>AEM uses this powerful mechanism by letting child components inherit everything their parent component has, including HTML tags, dialogues and client libraries!<\/p>\n<p>How was my Child Sample Word relationship created in AEM?<\/p>\n<p>Essentially, it uses the Sling Resource Super Type property.<\/p>\n<p>This property serves as the connecting thread that links each child component back to its parent component, similar to how Java uses extends for class inheritance.<\/p>\n<p>This approach ensures modularity while simultaneously connecting components seamlessly.<\/p>\n<p>Here&#8217;s where it gets interesting: everything available from the parent component becomes available in its child component.<\/p>\n<p>I was amazed to see that when refreshing my child component, the dialogue of its parent component came through even though its child component hadn&#8217;t had one.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Component-Behavior.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><br \/>That is the power of AEM! All properties, <a href=\"https:\/\/cloudfoundation.com\/blog\/css3-interview-questions-and-answers\/\" target=\"_blank\" rel=\"noopener\"><strong>HTMLs<\/strong><\/a>, and functionalities from one component seamlessly transfer to its child counterparts.<\/p>\n<p>When customizing something specific within one child component\u2014for instance, updating title properties while keeping all features from its parent component intact\u2014AEM makes this seamless!<\/p>\n<p>AEM allows you to make targeted modifications without altering inheritance structures by copying and pasting specific properties into children and editing their values.<\/p>\n<p>For example, when I changed the title of one child component&#8217;s Properties list to &#8220;Child Sample Properties,&#8221; my changes became visible almost instantaneously.<\/p>\n<p>AEM provides unique benefits in its virtual availability of properties and HTMLs; you can reference them dynamically without using full paths unless breaking inheritance chains occurs.<\/p>\n<p>Child components inherit elements from parent components that you can manipulate within their child component to give yourself maximum flexibility in how it looks and is structured.<\/p>\n<p>AEM doesn&#8217;t allow locking individual components; whole pages using blueprints and live copies may still be locked for security.<\/p>\n<p>AEM provides consistency across multiple pages while upholding existing relationships among components. It empowers developers to craft dynamic user experiences quickly.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Mastering_Overrides_in_AEM_Components\"><\/span><strong>Mastering Overrides in AEM Components<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Overriding Properties in AEM Components. Anyone familiar with Java will recognize the idea of overriding local variables and methods in child classes.<\/p>\n<p>Similarly, AEM allows you to override specific properties within child components while keeping other aspects from their parent components unchanged.<\/p>\n<p>Example: I wanted to change the title property in my child component. I accomplished this easily by providing an updated value while inheriting all other nodes and properties from its parent component.<\/p>\n<p>Clean and efficient, AEM makes customising parts easy by inheriting their properties\u2014be they visible nodes or underlying configurations\u2014from parent components.<\/p>\n<p>So even when specific nodes of a child component are deleted, its inheritance mechanism ensures they still function as intende.<\/p>\n<p>It&#8217;s an elegant solution for managing components while maintaining an orderly inheritance flow.<\/p>\n<p>Another outstanding aspect of AEM&#8217;s capabilities is how well its dialogues handle child components not equipped with dialogues.<\/p>\n<p>Imagine opening one such dialogue inside one such component without needing separate dialogs.AEM makes this easy.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Overrides.png\" alt=\"AEM Training\" width=\"800\" height=\"945\" \/><\/p>\n<p>Automatic dialogue retrieval from parent accounts ensures consistency and ease of use; specific updates to inherited dialogues can create tailored experiences without jeopardizing inheritance&#8217;s benefits.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Node_Inheritance\"><\/span><strong>Understanding AEM Node Inheritance<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>As part of <a href=\"https:\/\/cloudfoundation.com\/blog\/what-is-aem\" target=\"_blank\" rel=\"noopener\"><strong>Adobe Experience Manager (AEM)<\/strong><\/a>, developers often encounter situations in which nodes and their properties inherit from parent components.<\/p>\n<p>This streamlines development processes by eliminating the redefinition of similar properties multiple times.<\/p>\n<p>By inheriting properties this way, developers save time from repeating steps to set these properties repeatedly.<\/p>\n<p>Instead of customizing child components to meet specific requirements, consider customizing AEM child components.<\/p>\n<p>Perhaps adding new fields below the BG color property?<\/p>\n<p>This field doesn&#8217;t need to duplicate all properties inherited from its parent component; you can create its structure within its child component while keeping all inherited nodes intact.<\/p>\n<p>For example, you could rename and label its new field appropriately so it fits seamlessly within your application.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Customizing_AEM_Child_Components\"><\/span><strong>Customizing AEM Child Components<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Customize child components in AEM by adding nodes and fields without including all inherited properties.<\/p>\n<p>If sufficient nodes from parent components exist to satisfy customization, remove redundant nodes from the child component structure.<\/p>\n<p>Your child component only contains elements you require; when creating one, do it this way.<\/p>\n<p>For instance, adding a child field ensures you only include what&#8217;s relevant\u2014for instance, placing it above an existing hobbies field by setting AEM properties such as&#8217; sling:orderBefore.&#8217;<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Customization-Guide.png\" alt=\"AEM Training\" width=\"800\" height=\"2990\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Exploring_AEM_Overriding_and_Overlays\"><\/span><strong>Exploring AEM Overriding and Overlays<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM allows you to override components by creating parent-child relationships. Overriding allows you to customize certain aspects of an element while inheriting properties from its parent component.<\/p>\n<p>Additionally, AEM allows users to establish links to parent components by including the attribute&#8217;sling:resourceSuperType&#8217; within child components.<\/p>\n<p>On the flipside, overlays provide an effective method of customizing out-of-the-box files found within its libs directory.<\/p>\n<p>If you need to customize the functionality of a form or template, replicating its structure in your application&#8217;s apps folder and making adjustments there can ensure your customisations take precedence while keeping original files from your libs directory untouched.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#0095f2&#8243; background_color_gradient_end=&#8221;#7dbed8&#8243; background_color_gradient_direction=&#8221;92deg&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;73%|62%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/SS_436-_Converted_-1.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_scale=&#8221;114%|112%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;25px|-4px&#8221; transform_translate_linked=&#8221;off&#8221; width=&#8221;98.1%&#8221; custom_margin=&#8221;|7px|||false|false&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;21px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><span style=\"color: #ffffff;\">AEM Training<\/span><\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Explore Course Content&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#0C71C3&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Advantages_of_Overlays_in_AEM\"><\/span><strong>Advantages of Overlays in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>One advantage of overlays in AEM is their ability to allow modifications without touching core files from the &#8216;libs&#8217; directory, thus minimizing potential conflicts during Adobe upgrades and updates.<\/p>\n<p>However, overlays should only be used judiciously. Since overlay files in the &#8220;apps&#8221; directory do not reflect updates made to original libs directory files by Adobe, only use overlays when necessary and thoroughly test any custom functionality before final deployment.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Optimization.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_Performance_Logs_in_AEM\"><\/span><strong>Understanding Performance Logs in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>One of the best tools available when working with AEM for performance analysis is request.log. This log details how long each page request takes to process, helping identify pages that could hinder website speed.<\/p>\n<p>Imagine finding that certain pages consistently take too long to load. Reviewing your request.log makes it much simpler to identify these pages and the thread ID associated with each request.<\/p>\n<p>AEM Logs provide accurate timestamps, request types and response times, allowing for efficient analysis and resolution of performance bottlenecks.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Leveraging_Access_Logs_in_AEM\"><\/span><strong>Leveraging Access Logs in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Access logs in AEM are invaluable for tracking user activity on your website. Every request made by end users will be recorded, with their IP address, browser details, and timestamps stored here for investigation if suspicious behaviour occurs on the site.<\/p>\n<p>Example Use Cases\/User Behaviour Analysis: The AEM system captures all relevant information, providing greater application security by quickly detecting unauthorised attempts and user behaviours.<\/p>\n<p>It protects applications against potential risks through proactive preventative actions against threats or attacks.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Logs.png\" alt=\"AEM Training\" width=\"800\" height=\"879\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Using_System_Logs_for_Server_Insights_in_AEM\"><\/span><strong>Using System Logs for Server Insights in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM server generates logs at startup and shutdown that appear in both system error logs and output logs.<\/p>\n<p>Ideal system error log entries are empty; otherwise, warnings about insufficient heap memory suggest there may be server configuration issues to address.<\/p>\n<p>System output logs capture basic operational details, allowing you to monitor server health and ensure uninterrupted operation.<\/p>\n<p>Reviewing these logs regularly makes it easy to ensure everything runs as it should without disruption.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tracking_User_Activity_with_Audit_Logs_in_AEM\"><\/span><strong>Tracking User Activity with Audit Logs in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM provides an extensive audit log to monitor user activities. The history.log keeps track of all user actions, such as creating, editing, or deleting pages, and allows you to retrieve the details, such as who deleted it.<\/p>\n<p>When someone accidentally deletes something, AEM allows you to retrieve this information, such as the user\u2019s name, timestamp, and action taken.<\/p>\n<p>Assuming a new page named &#8216;Test Page&#8217; was recently created or deleted, the audit log can help track this activity to help trace back actions and maintain accountability.<\/p>\n<p>This feature is essential in upholding the integrity of your content management system.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Audit-Logs.png\" alt=\"AEM Training\" width=\"800\" height=\"1867\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Why_Access_and_Audit_Logs_Matter_in_AEM\"><\/span><strong>Why Access and Audit Logs Matter in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Access.log and history.log play essential roles in managing and protecting your AEM application. Access.log focuses on user access data, while history.log offers a deeper analysis of page actions.<\/p>\n<p>These two logs complement one another for an in-depth view into system activities.<\/p>\n<p>Whether investigating performance issues or changes made without authorization, AEM&#8217;s robust logging mechanism is your go-to for reliable log analysis to improve application performance and security. Keep up regularly reviewing this log for maximum benefit!<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Logs_for_Better_Troubleshooting\"><\/span>U<strong>nderstanding AEM Logs for Better Troubleshooting<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Logs play an invaluable role when debugging and monitoring application performance, offering insight into potential areas for troubleshooting.<\/p>\n<p>Each log provides specific benefits; learning more about each can simplify troubleshooting.<\/p>\n<p>Error.log is one of the primary logs associated with AEM applications and comprises both application-specific and core system logs.<\/p>\n<p>If you are working on an AEM requirement with custom Java files, all related logs may appear within error.log, making it hard to isolate those associated with your project.<br \/>\n<video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Log-Insights.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Using_AEM_History_and_Audit_Logs\"><\/span><strong>Using AEM History and Audit Logs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM provides history.log and audit.log to track system changes. History.log is the best option for determining which user performed a specific action.<\/p>\n<p>On the other hand, audit.log captures accessibility-related information, such as modifications to nodes.<\/p>\n<p>These logs help administrators monitor system activity and detect unauthorized changes within AEM.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#ff8c7c&#8221; background_color_gradient_end=&#8221;#e5ba4e&#8221; background_color_gradient_type=&#8221;radial&#8221; background_color_gradient_direction_radial=&#8221;top left&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;74%|69%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;||-5px||false|false&#8221; custom_padding=&#8221;|||2px|false|false&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/8423118_3895895.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; width=&#8221;85.4%&#8221; custom_margin=&#8221;-31px||-24px||false|false&#8221; custom_padding=&#8221;|22px|0px||false|false&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;19px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;1.2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><strong>AEM Online <\/strong>Training<\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Up Coming Batches&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#E09900&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221; background_layout=&#8221;dark&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Creating_Custom_Logs_in_AEM\"><\/span><strong>Creating Custom Logs in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Developers can create custom logs to simplify debugging in AEM. This ensures only application-specific logs are recorded in a separate log file.<\/p>\n<p>AEM allows this configuration via the system console.<\/p>\n<p>Developers can filter the logs that matter most by defining custom log levels, such as debug, info, warning, and error.<\/p>\n<p>Setting up these logs ensures that unnecessary data does not clutter debugging efforts.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/Log-Management.png\" alt=\"AEM Training\" width=\"800\" height=\"1070\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Managing_Log_Files_in_AEM\"><\/span><strong>Managing Log Files in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Developers can leverage AEM&#8217;s system console to customize logs to simplify debugging of application-specific logs.<\/p>\n<p>A custom log can ensure only application-related logs are recorded separately, saving time when troubleshooting applications that use multiple log files.<\/p>\n<p>Developers can identify which logs matter by creating custom log levels like debug, info, warning and error. By taking this approach to filtering logs appropriately and keeping debugging efforts focused, unnecessary information does not bog down efforts to solve an issue.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Logging_Best_Practices_in_AEM\"><\/span><strong>Logging Best Practices in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>As part of AEM projects, it&#8217;s vitally important that proper log levels be utilized. Debug logs should be utilized when testing internal functions while error logs capture critical failures and ensure developers can quickly diagnose issues without unnecessary clutter.<\/p>\n<p>AEM&#8217;s Logging Framework facilitates customisation to suit individual team&#8217;s requirements, helping teams customize logs according to specific parameters that help maintain clean, legible logs. With such flexibility in place, team can optimize overall system performance.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Logging-Guide.png\" alt=\"AEM Training\" width=\"800\" height=\"2783\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_Logging_in_AEM\"><\/span><strong>Understanding Logging in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Logging is an invaluable asset when debugging and monitoring applications in AEM. It offers insights into the behavior of the application when issues arise. When an error does appear, these log files provide key clues into its cause.<\/p>\n<p>AEM allows developers to set log levels, including INFO, DEBUG, WARNING, and ERROR. On production instances, it is advised that developers set log level INFO to reduce excessive logging that may consume system resources.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_to_Utilize_Logs_Effectively_in_AEM\"><\/span><strong>How to Utilize Logs Effectively in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>By employing SLF4J in AEM, developers can efficiently produce structured logs to assist in troubleshooting errors.<\/p>\n<p>DEBUG logs may be helpful during development, while INFO logs may be more appropriate in production environments.<\/p>\n<p>If errors arise within AEM, the first step should always be analyzing log entries to pinpoint where failure has occurred.<\/p>\n<p>Searching relevant log entries may reveal failure information.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Log-Management.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Managing_Log_Levels_in_AEM\"><\/span><strong>Managing Log Levels in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Changing log levels dynamically in AEM can help troubleshoot specific issues. If DEBUG logs are needed temporarily, updating the log configuration allows additional logging details without affecting performance.<\/p>\n<p>AEM logs are categorised into different types, such as error logs, audit logs, and request logs.<\/p>\n<p>Developers can customise logging to ensure that logs are stored separately, making it easier to analyse system behaviour.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Troubleshooting_Issues_Using_AEM_Logs\"><\/span><strong>Troubleshooting Issues Using AEM Logs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Logs are the primary means of diagnosing issues when debugging an AEM application, and bundle statuses are the benchmark to ensure essential services run flawlessly.<\/p>\n<p>Logging helps developers determine why bundles are inactive and detect and fix errors before adversely impacting applications.<\/p>\n<p>By reading logs regularly, developers can detect and resolve potential errors before their impact becomes evident to end-users.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Debugging.png\" alt=\"AEM Training\" width=\"800\" height=\"1066\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Optimizing_Logging_for_Better_Performance_in_AEM\"><\/span><strong>Optimizing Logging for Better Performance in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Log management within AEM should be efficient in preserving system performance. An excessive logging volume could slow application performance; as a best practice, log levels should be kept below INFO in production mode.<\/p>\n<p>Create custom log files within AEM to quickly analyse any pertinent information for application-specific logs and system logs, helping developers rapidly digest relevant details.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#494fff&#8221; background_color_gradient_end=&#8221;#9ea6ff&#8221; background_color_gradient_type=&#8221;radial&#8221; background_color_gradient_direction_radial=&#8221;top left&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;74%|71%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/Untitled-11.png&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_scale=&#8221;103%|103%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;11px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_padding=&#8221;|88px||||&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;19px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;1.2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><span style=\"color: #ffffff;\"><strong>AEM Course Price<\/strong><\/span><\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Offer Price&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#0C71C3&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_team_member name=&#8221;Sai Susmitha&#8221; position=&#8221;Author&#8221; image_url=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/03\/Sai-Susmitha.png&#8221; _builder_version=&#8221;4.9.7&#8243; header_level=&#8221;h5&#8243; header_font=&#8221;Titillium Web|700|||||||&#8221; body_font=&#8221;Titillium Web||||||||&#8221; body_font_size=&#8221;16&#8243;]<\/p>\n<p id=\"posted-message-container\" class=\"zcmsgcnt textL\" dir=\"auto\">The Journey of Personal Development is a Continuous path of learning and growth<\/p>\n<p>[\/et_pb_team_member][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Why Extra Client Libraries Matter in [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":97866,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"2880","footnotes":""},"categories":[209],"tags":[],"class_list":{"0":"post-97865","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-adobe"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AEM Components | AEM Logs<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AEM Components | AEM Logs\" \/>\n<meta property=\"og:description\" content=\"[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Why Extra Client Libraries Matter in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudfoundation.com\/blog\/aem-components\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudFoundation | Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-29T07:41:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-01T12:04:56+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM6-FI.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"333\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"NAGENDRAG\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"NAGENDRAG\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AEM Components | AEM Logs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudfoundation.com\/blog\/aem-components\/","og_locale":"en_US","og_type":"article","og_title":"AEM Components | AEM Logs","og_description":"[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Why Extra Client Libraries Matter in [&hellip;]","og_url":"https:\/\/cloudfoundation.com\/blog\/aem-components\/","og_site_name":"CloudFoundation | Blog","article_published_time":"2025-04-29T07:41:03+00:00","article_modified_time":"2025-05-01T12:04:56+00:00","og_image":[{"width":500,"height":333,"url":"http:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM6-FI.jpg","type":"image\/jpeg"}],"author":"NAGENDRAG","twitter_card":"summary_large_image","twitter_misc":{"Written by":"NAGENDRAG","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cloudfoundation.com\/blog\/aem-components\/","url":"https:\/\/cloudfoundation.com\/blog\/aem-components\/","name":"AEM Components | AEM Logs","isPartOf":{"@id":"https:\/\/cloudfoundation.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-components\/#primaryimage"},"image":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-components\/#primaryimage"},"thumbnailUrl":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM6-FI.jpg","datePublished":"2025-04-29T07:41:03+00:00","dateModified":"2025-05-01T12:04:56+00:00","author":{"@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/df6c7eba98f1bb15f2a100a9958266e4"},"breadcrumb":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-components\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudfoundation.com\/blog\/aem-components\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudfoundation.com\/blog\/aem-components\/#primaryimage","url":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM6-FI.jpg","contentUrl":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM6-FI.jpg","width":500,"height":333},{"@type":"BreadcrumbList","@id":"https:\/\/cloudfoundation.com\/blog\/aem-components\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudfoundation.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AEM Components | AEM Logs"}]},{"@type":"WebSite","@id":"https:\/\/cloudfoundation.com\/blog\/#website","url":"https:\/\/cloudfoundation.com\/blog\/","name":"CloudFoundation | Blog","description":"A New way of Learning","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudfoundation.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/df6c7eba98f1bb15f2a100a9958266e4","name":"NAGENDRAG","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/09e08ba1102807a876f2c00245d6b955f0a9f027b40c181e9cee0cd2d927f84a?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09e08ba1102807a876f2c00245d6b955f0a9f027b40c181e9cee0cd2d927f84a?s=96&d=wavatar&r=g","caption":"NAGENDRAG"},"url":"https:\/\/cloudfoundation.com\/blog\/author\/nagendrag\/"}]}},"_links":{"self":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/comments?post=97865"}],"version-history":[{"count":8,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97865\/revisions"}],"predecessor-version":[{"id":98495,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97865\/revisions\/98495"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/media\/97866"}],"wp:attachment":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/media?parent=97865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/categories?post=97865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/tags?post=97865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}