CINXE.COM
A Beginner's Guide to Log Management | Better Stack Community
<!DOCTYPE html> <html lang='en' prefix='og: https://ogp.me/ns#'> <head> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'> <title>A Beginner's Guide to Log Management | Better Stack Community</title> <meta content='width=device-width,initial-scale=1' name='viewport'> <link href='https://cdnjs.betterstack.com' rel='preconnect'> <link href='https://cdnjs.betterstack.com' rel='dns-prefetch'> <link href='https://www.googletagmanager.com' rel='preconnect'> <link href='https://www.googletagmanager.com' rel='dns-prefetch'> <link href='https://plausible.io' rel='preconnect'> <link href='https://plausible.io' rel='dns-prefetch'> <link href='https://forms.hsforms.com' rel='preconnect'> <link href='https://forms.hsforms.com' rel='dns-prefetch'> <link href='https://js.hsforms.net' rel='preconnect'> <link href='https://js.hsforms.net' rel='dns-prefetch'> <link href='https://connect.facebook.net' rel='preconnect'> <link href='https://connect.facebook.net' rel='dns-prefetch'> <link href='https://static.ads-twitter.com' rel='preconnect'> <link href='https://static.ads-twitter.com' rel='dns-prefetch'> <link href='https://bat.bing.com' rel='preconnect'> <link href='https://bat.bing.com' rel='dns-prefetch'> <link href='https://snap.licdn.com' rel='preconnect'> <link href='https://snap.licdn.com' rel='dns-prefetch'> <link href='https://googleads.g.doubleclick.net' rel='preconnect'> <link href='https://googleads.g.doubleclick.net' rel='dns-prefetch'> <link href='https://analytics.twitter.com' rel='preconnect'> <link href='https://analytics.twitter.com' rel='dns-prefetch'> <link href='/assets/favicon-ad4a170f31b6075c4d7ea5e23ce36677b3412bdd2fabc48d1b688bc535c8821c.png' rel='shortcut icon'> <meta content='Learn how log management can save you from the slow, frustrating, and costly process of manually sifting through log files.' name='description'> <meta content='website' property='og:type'> <meta content='A Beginner's Guide to Log Management | Better Stack Community' property='og:title'> <meta content='Learn how log management can save you from the slow, frustrating, and costly process of manually sifting through log files.' property='og:description'> <meta content='https://betterstack.com/og-image/log-management.png' property='og:image'> <meta content='summary_large_image' property='twitter:card'> <meta content='betterstackhq' property='twitter:site'> <meta content='A Beginner's Guide to Log Management | Better Stack Community' property='twitter:title'> <meta content='Learn how log management can save you from the slow, frustrating, and costly process of manually sifting through log files.' property='twitter:description'> <meta content='https://betterstack.com/og-image/log-management.png' property='twitter:image'> <meta content='no-cache' name='turbo-cache-control'> <link href='https://betterstack.com/community/guides/logging/log-management/' rel='canonical'> <meta content='https://betterstack.com/community/guides/logging/log-management/' property='og:url'> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="axQhv8mQpcCAHR6ZypllWZcJIi-_l9y3Ye2zVlactktfj97OQHTs84CEDp6EZtbse1iZkiNRCrZKteiSuus_3g" /> <meta name="csp-nonce" content="933636584b1c4a10d880fb5e4c9d6da7" /> <link href='https://cdnjs.betterstack.com/@vueform/multiselect@2.5.7/themes/default.css' rel='stylesheet'> <link href='https://cdnjs.betterstack.com/floating-vue@2.0.0-beta.24/dist/style.css' rel='stylesheet'> <link href='https://cdnjs.betterstack.com/@docsearch/css@3.5.2/dist/style.css' rel='stylesheet'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Regular.woff2' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Regular.woff' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Medium.woff2' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Medium.woff' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-SemiBold.woff2' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-SemiBold.woff' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Bold.woff2' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Bold.woff' rel='preload'> <style> @font-face { font-family: "Roobert"; font-style: normal; font-weight: 400; font-display: swap; src: url("/static/fonts/Roobert/Roobert-Regular.woff2") format("woff2"), url("/static/fonts/Roobert/Roobert-Regular.woff") format("woff"); } @font-face { font-family: "Roobert"; font-style: normal; font-weight: 500; font-display: swap; src: url("/static/fonts/Roobert/Roobert-Medium.woff2") format("woff2"), url("/static/fonts/Roobert/Roobert-Medium.woff") format("woff"); } @font-face { font-family: "Roobert"; font-style: normal; font-weight: 600; font-display: swap; src: url("/static/fonts/Roobert/Roobert-SemiBold.woff2") format("woff2"), url("/static/fonts/Roobert/Roobert-SemiBold.woff") format("woff"); } @font-face { font-family: "Roobert"; font-style: normal; font-weight: 700; font-display: swap; src: url("/static/fonts/Roobert/Roobert-Bold.woff2") format("woff2"), url("/static/fonts/Roobert/Roobert-Bold.woff") format("woff"); } </style> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowText-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowText-Medium.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowText-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowDisplay-Medium.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowDisplay-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <style> @font-face { font-family: 'Helvetica Now Text'; src: local('Helvetica Now Text Regular'), local('HelveticaNowText-Regular'), url('/static/fonts/Helvetica/HelveticaNowText-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; } @font-face { font-family: 'Helvetica Now Text'; src: local('Helvetica Now Text Medium'), local('HelveticaNowText-Medium'), url('/static/fonts/Helvetica/HelveticaNowText-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; } @font-face { font-family: 'Helvetica Now Text'; src: local('Helvetica Now Text Bold'), local('HelveticaNowText-Bold'), url('/static/fonts/Helvetica/HelveticaNowText-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; } @font-face { font-family: 'Helvetica Now Display'; src: local('Helvetica Now Display Medium'), local('HelveticaNowDisplay-Medium'), url('/static/fonts/Helvetica/HelveticaNowDisplay-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; } @font-face { font-family: 'Helvetica Now Display'; src: local('Helvetica Now Display Bold'), local('HelveticaNowDisplay-Bold'), url('/static/fonts/Helvetica/HelveticaNowDisplay-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; } </style> <script defer='' src='https://www.googletagmanager.com/gtag/js?id=G-9FLKD0MQYY'></script> <script defer='' nonce='933636584b1c4a10d880fb5e4c9d6da7'> window.dataLayer = window.dataLayer || []; function gtag(){window.dataLayer.push(arguments);} gtag('js', new Date()); gtag('set', 'linker', { 'domains': ["betterstack.com","betteruptime.com","uptime.betterstack.com","logtail.com","telemetry.betterstack.com"] }); gtag('config', 'G-9FLKD0MQYY', { linker: { domains: ["betterstack.com","betteruptime.com","uptime.betterstack.com","logtail.com","telemetry.betterstack.com"] }}); gtag('config', 'AW-10805602682', { linker: { domains: ["betterstack.com","betteruptime.com","uptime.betterstack.com","logtail.com","telemetry.betterstack.com"] }}); </script> <script defer='' nonce='933636584b1c4a10d880fb5e4c9d6da7'> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1062799887416376'); </script> <script defer='' nonce='933636584b1c4a10d880fb5e4c9d6da7'> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='https://static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); twq('config','o7hjd'); </script> <script data-domain='betterstack.com' defer='' src='https://plausible.io/js/plausible.js'></script> <script defer='' nonce='933636584b1c4a10d880fb5e4c9d6da7'> !function(e,t,n,a,o){var c,r,d;e[o]=e[o]||[],c=function(){var t={ti:"17516957"};t.q=e[o],e[o]=new UET(t),e[o].push("pageLoad")}, (r=t.createElement(n)).src="//bat.bing.com/bat.js",r.async=1,r.onload=r.onreadystatechange=function(){var e=this.readyState;e&&"loaded"!==e&&"complete"!==e|| (c(),r.onload=r.onreadystatechange=null)},m=t.querySelector("[nonce]"),m&&r.setAttribute("nonce",m.nonce||m.getAttribute("nonce")),(d=t.getElementsByTagName(n) [0]).parentNode.insertBefore(r,d)}(window,document,"script",0,"uetq"); </script> <script defer='' nonce='933636584b1c4a10d880fb5e4c9d6da7'> _linkedin_partner_id = "3533474"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); (function(l) {if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; window.lintrk.q=[]}var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script");b.type = "text/javascript";b.async = true; b.nonce = "933636584b1c4a10d880fb5e4c9d6da7"; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(window.lintrk); </script> <script defer='' nonce='933636584b1c4a10d880fb5e4c9d6da7'> !function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document); rdt('init', 't2_bywzx23t', {"optOut":false,"useDecimalCurrencyValues":true}); rdt('track', 'PageVisit'); </script> <script defer='' nonce='933636584b1c4a10d880fb5e4c9d6da7'> document.addEventListener('turbo:load', function(event) { if (typeof gtag === 'function') { gtag('set', 'page_path', location.pathname); fbq('track', 'PageView'); twq('track','PageView'); uetq.push('event', 'page_view', { 'page_path': location.pathname }); rdt('track', 'PageVisit'); return gtag('event', 'page_view'); } }); // remove noscript elements which break DOMParser document.addEventListener('turbo:before-render', function (event) { event.detail.newBody.querySelectorAll('noscript').forEach((e) => e.remove()); }); </script> <script type="importmap" data-turbo-track="reload" nonce="933636584b1c4a10d880fb5e4c9d6da7">{ "imports": { "admin_controllers/article_form_controller": "/assets/admin_controllers/article_form_controller-093d791912986e6d67b7a2fcd5295875dd92901ff6ce65d2c7a244ff95cbaf9d.js", "admin_controllers": "/assets/admin_controllers/index-251bd0d37d81d4101c7746067926201b8ccb0a3fcb4ced1e27a144e7f27e1964.js", "api/NaturalLanguageParserApi": "/assets/api/NaturalLanguageParserApi-85e7f98db0cb7fc89adeed477ecc3f68b1fa7ff41237591b77ec5e9b7c5714f0.js", "application_controllers/account_settings_controller": "/assets/application_controllers/account_settings_controller-0c78fc0dde7cb83830c6a6e0cd69488dacbbb2165ba18fce9831accd172a22ce.js", "application_controllers/command_controller": "/assets/application_controllers/command_controller-033b711b2e0fe9561562f0f7fc741976a65edd54294a5b074bd416954e15af99.js", "application_controllers/command_palette_controller": "/assets/application_controllers/command_palette_controller-63c7905f99026161d164192e26e7bbc822673d236189d07573a0faecae9fcca1.js", "application_controllers/command_palette_hierarchy_controller": "/assets/application_controllers/command_palette_hierarchy_controller-03324b50b668dbc97fa3d4cfaff34614d2016dd4bd6ca7e6188663af1e23b282.js", "application_controllers/dropdown_controller": "/assets/application_controllers/dropdown_controller-52e7f44fe04d4fd1035d23198a9a61730bf5f56373eb3119f1395308d14f1fbe.js", "application_controllers/front_chat_controller": "/assets/application_controllers/front_chat_controller-f743662f29f7afe23a682e2351074dce796cdcf3103169e268dbcc9e9a5e5fe4.js", "application_controllers/hotkeys_controller": "/assets/application_controllers/hotkeys_controller-2c32447898227cf3b026adcb96a6477228ee6dd66de62902226ae75e768764b5.js", "application_controllers": "/assets/application_controllers/index-aa644584c697bee855575cba40aec5cf05a967074d1fc12f678362f238447604.js", "application_controllers/input_self_select_controller": "/assets/application_controllers/input_self_select_controller-587ca3c4027f85377bf8d801166f68c26ff22a37c0efd6f5fd16fab4aa377631.js", "application_controllers/marketing_banner_controller": "/assets/application_controllers/marketing_banner_controller-ad11b32b6cc2cef94caf518358a6a61653f0276a130078720ab96569480f696a.js", "application_controllers/marketing_banner_form_controller": "/assets/application_controllers/marketing_banner_form_controller-bc9c74d362d3cfbcf515e7775015dbf660b424f3e7cc23f3326767f338bd1d44.js", "application_controllers/menu_controller": "/assets/application_controllers/menu_controller-1242dee1a020ff79d024cc107b27fe751d9bab822201808bbae462f96f5e04d1.js", "application_controllers/nav_toggle_controller": "/assets/application_controllers/nav_toggle_controller-a5303aa9c92cf2089a725ef839eec0eb899179be7bad2bf937e71a0da318937d.js", "application_controllers/notification_toast_controller": "/assets/application_controllers/notification_toast_controller-4a7916ac3cb0201a02f4a2035f135dbce18fe0c68c29db6b55772e1278fc3f85.js", "application_controllers/notification_toasts_controller": "/assets/application_controllers/notification_toasts_controller-cc673788aa19747ae5b1cad480442d3bacc4e72b485f486e1f21a1f47c599d22.js", "application_controllers/payment/calculator_controller": "/assets/application_controllers/payment/calculator_controller-bc992e3fcd9906bc2478a5403899565dc768c659116f59cc74514ad873eaea70.js", "application_controllers/payment/change_plan_controller": "/assets/application_controllers/payment/change_plan_controller-6e868397ee1bc2e35e99187d69834227c09c2d507098607a30496f8e83bca3a6.js", "application_controllers/payment/enter_card_controller": "/assets/application_controllers/payment/enter_card_controller-bdc191a9092986bc6a53fff514dadd5fffae6bbcbfa0a56394d47a35b17119cf.js", "application_controllers/payment/plan_controller": "/assets/application_controllers/payment/plan_controller-e001672c9f0dbe0d5f3db235e637a0de7a06db10e56b1438ffbb2829e7c879f6.js", "application_controllers/payment/refund_controller": "/assets/application_controllers/payment/refund_controller-f0e76d028f19f14a902b7ee94c74e88cf03e97c41d9e4d767bf7ff1fab9bfbea.js", "application_controllers/plan_product_controller": "/assets/application_controllers/plan_product_controller-fd3609dcf56b5849a034dde2558bf83a0021412185845b83299aa1e18051240b.js", "application_controllers/plan_product_variable_controller": "/assets/application_controllers/plan_product_variable_controller-4ce92a01c700b623202a39711276a6c832dbec7e3d228a3f5b32ad6eb64b9d0a.js", "application_controllers/prefilled_demo_modal_controller": "/assets/application_controllers/prefilled_demo_modal_controller-b903f7bba8a860dd64a1242a732ee55951f2ca90393f43e4c73d46fea1ecee53.js", "application_controllers/push_notifications_controller": "/assets/application_controllers/push_notifications_controller-2e004a7d669fdc2fef6802fefde8d63b22521a447d2876ac5b886b8bbfe7abb2.js", "application_controllers/roles/permission_toggle_controller": "/assets/application_controllers/roles/permission_toggle_controller-239116552b060934f75fb7dc5456c23929b0123d4f15b66de7c4e2d01c79f434.js", "application_controllers/search/base_controller": "/assets/application_controllers/search/base_controller-70ebd53d1732fed0f93af77b0a5641d2756c359bfcce5aea6fa19319aedc4abb.js", "application_controllers/single_sign_on/generic_controller": "/assets/application_controllers/single_sign_on/generic_controller-8a38c9acced8bc901e4389e11632c56533bd287d7660db4727eb3ee2da02a24e.js", "application_controllers/single_sign_on/okta_controller": "/assets/application_controllers/single_sign_on/okta_controller-301c6f5ef5ba086f7fe432ff24e4ac3c031c06102b7a0da6ba94d1453f0bacb8.js", "application_controllers/transition_controller": "/assets/application_controllers/transition_controller-c6a61c0df4f842c56ee6f48e8c615d5c5828536643c801b0cdca2e2fd6086ed3.js", "articles/tabs": "/assets/articles/tabs-111303381549055f8295ac48a24c41debb4a2d570160fc669b83e56e16b6dcd3.js", "articles_controllers/body_controller": "/assets/articles_controllers/body_controller-e46956b8ad9bdb57ef53871c70b0152582b9f9c2c516eb6fc0960194252d0c45.js", "articles_controllers/clipboard_controller": "/assets/articles_controllers/clipboard_controller-c3fe3cf960ab3975ae45ae7534d18a183cd0b7aa0cb52c8cc3c6a9486e3e5f5c.js", "articles_controllers/code_controller": "/assets/articles_controllers/code_controller-ba91cc6d90f367aabd0aea8d58fe3457a029e81dba595656792ba46d233345f0.js", "articles_controllers": "/assets/articles_controllers/index-111d288d1c02d07a6e35f2e5a183c1684ebc430f926dc285e2ac90577f0cc90a.js", "articles_controllers/lightbox_controller": "/assets/articles_controllers/lightbox_controller-47f223cbbc128ac82d59fe796e6b00ccd3d42cff086ab52631cfaf0c34b24a0c.js", "articles_controllers/search_controller": "/assets/articles_controllers/search_controller-0d3a342441e0713b1930414fb0e7c1716dead6fb5ce47f9c35dfccb2ea554069.js", "articles_controllers/toc_controller": "/assets/articles_controllers/toc_controller-c9ec659d078e715f8447e6bb4ea289b29b6c4e68dc17a97e168cf6e15b7a1386.js", "articles_controllers/toggle_controller": "/assets/articles_controllers/toggle_controller-e7d2aef0234491a5b059688097a6f1d6d9557abc7fe579f2063ead389c57800b.js", "betterstack_v2/carousel": "/assets/betterstack_v2/carousel-05024cefdac5d83dea490e1df67ba50fedb91d6a3e537540e2bb2c1b92e00694.js", "betterstack_v2/collapse": "/assets/betterstack_v2/collapse-1cdfd31392c35357359391ba794e3ef0f13a72bcb9c5b8270316b2e0d4f8d11e.js", "betterstack_v2/gallery": "/assets/betterstack_v2/gallery-4c68f91383c831f5389efe2679042b625754e0ac00bf09c02f36bc2ce3cb683a.js", "betterstack_v2/menu": "/assets/betterstack_v2/menu-b1ec6baad54fa8b78965f501426b1d58ec12eb070d399ff582cae7078cfd260f.js", "betterstack_v2/search": "/assets/betterstack_v2/search-09cfb8e126e955ecaeaf2e90deb83fd79a6cda9ee26433f97a0e577e7f7c3a33.js", "betterstack_v2/slide": "/assets/betterstack_v2/slide-c6d35378bfed6bea175bc7493e0d5a18b4700f2bd773959c4d869dd645a79adf.js", "betterstack_v2/toggle": "/assets/betterstack_v2/toggle-65841dc64993ca0e98881ed758b2f7533eaded5a4b8b405b47d55d8dbe9fca45.js", "channels": "/assets/channels/index-0c17d2125cae6f89a5c8d36d4e8d48d7e46b72e792349605b94a92822223fedf.js", "common/aos": "/assets/common/aos-2b4aafcba2495ae196d810350e01a2acc682c5aedec5bd77cbfe0d520dc2957f.js", "common/billing": "/assets/common/billing-2a4ae4655f472eab99b30ded483e7ecbc32d1ca1d10054f3ff83dbb8b8e6a157.js", "common/copy": "/assets/common/copy-0a1dad74b3201175c8b20b23d840f49ea78d3e8109602788431b95d09a218c4d.js", "common/data-disable-with-spinner": "/assets/common/data-disable-with-spinner-c136ea5779d65691524fb4e83a37bd3339094233087f672b7338c58cd77493bf.js", "common/drag-n-drop": "/assets/common/drag-n-drop-ec4c29d70a9bf14961617ae1aa3e723519650724c12bf4c406f8be026ae8d4da.js", "common/lazy": "/assets/common/lazy-3eb764101958480a12b2c50eb92af3adde35463ada26d277a0982026c785195f.js", "common/links": "/assets/common/links-09ddbfd3c3bb198b2b6cc37b95c788d284719599f065ca503cd6de55331c8e29.js", "common/modals": "/assets/common/modals-d6289315eb7bfe84680ec1d1f59d05419c173e09fa01528edb2bb6d7ef4e93e2.js", "common/posthog": "/assets/common/posthog-8b1f452704e4760f10ee4ffdac9f26024a09304f9f6e77dd4984bc0eed6a28ec.js", "common/railsSetup": "/assets/common/railsSetup-cfed4802124d3231b1c6441c95ff599b7444e257b726f77735da40bf9ce77b0b.js", "common/recaptchaSubmit": "/assets/common/recaptchaSubmit-00b44082803b95854afff50a43affb332ddebb2a0b83a68a26109aca6b46aab9.js", "common/side-menu-scroll": "/assets/common/side-menu-scroll-116ba69456d0ee789bbce8270028d1a58c82f1b3a6e9d99b44362611ddd833d2.js", "common/stripe": "/assets/common/stripe-400cea45a8d5db0115d23e22e7657e2c8fe6a7e0f7bc8e86e4f448ac91817638.js", "common_controllers/auth_controller": "/assets/common_controllers/auth_controller-2ddea9a34a33af3c43af3bfe03115096e458ef609eee2456817031f375b55f48.js", "common_controllers/carousel_controller": "/assets/common_controllers/carousel_controller-a7d37f67debce15a3533d3827e50aab4128acd45bca67e63df420ab0db11915d.js", "common_controllers/collapse_controller": "/assets/common_controllers/collapse_controller-3dcbee04b1fc36d249c8c9276f073e999824690035244732f7fad43f4bfc4a84.js", "common_controllers/dev_bar_controller": "/assets/common_controllers/dev_bar_controller-887fb16bd45969b56a36edd42d408a732b6a1b4e76373251fabb68e80839e461.js", "common_controllers": "/assets/common_controllers/index-58bf1184d6faabc80d3f76de9c58175eedd057ad900d7d2680bc46a21dcc04a5.js", "common_controllers/modal_opener_controller": "/assets/common_controllers/modal_opener_controller-76dc29e7081350175d5acdd51e81b5e7afbd56f8f59bc43634ab79f106085ebe.js", "common_controllers/onboarding/features_controller": "/assets/common_controllers/onboarding/features_controller-58f75dd4c42bf73a8409dc211caa29fea5bf4a063c4fcaed64acc7ff02ee314f.js", "common_controllers/onboarding/payment_controller": "/assets/common_controllers/onboarding/payment_controller-77824ffe892ec1f4fc2a9ca248c0a16a1fdb2d545daa2c5a58b30f014a7d2126.js", "common_controllers/onboarding/plan_controller": "/assets/common_controllers/onboarding/plan_controller-8b9dea50d1829d05f98c51ffa5f5262af554e2ccc4cc20fa128f21733fb4c7c4.js", "common_controllers/onboarding/telemetry_bundles_controller": "/assets/common_controllers/onboarding/telemetry_bundles_controller-a5251c236c4c6791370c0ac9421646c0a2b13745fc185682589a3b7c7dd92b6f.js", "common_controllers/onboarding/test_call_controller": "/assets/common_controllers/onboarding/test_call_controller-a09824d3d123e665bac0e1ca71970f826a3adee506a57f7295e95ac33df5100e.js", "common_controllers/pricing_controller": "/assets/common_controllers/pricing_controller-969fc984b6aca9d334d635a0c3c7111b74902fc639e74144aeb327704de83c89.js", "common_controllers/recaptcha_controller": "/assets/common_controllers/recaptcha_controller-2f82655e7318b3437aaee278e2523503bf200b01ed0c44c52aead72842128b61.js", "common_controllers/side_nav_controller": "/assets/common_controllers/side_nav_controller-f1670d9245c9eea0c10cabf3eebebc767f2014dff8ef3c4ceb4937ff1cbe06e0.js", "common_controllers/signup_controller": "/assets/common_controllers/signup_controller-b364ca84cf5a3f6d726e5d2daaa7c69d675d6eaced1a6c39e30ce5a09c6530ac.js", "common_controllers/status_page_layout_controller": "/assets/common_controllers/status_page_layout_controller-5be87013e73028cf0c53abbf4e9e2a8bbe1de3e0771be144d1e98a4a528bec5f.js", "common_controllers/timezone_controller": "/assets/common_controllers/timezone_controller-20295f334d67021c59bedd4825c9451b7ad43a7c60d6e725f945da602a0f42ea.js", "components/DatePicker": "/assets/components/DatePicker-436e54a842303f7aa138ce40f4aadd818d868002b208a8deb6d4035eea97fae3.js", "components/Modal": "/assets/components/Modal-766a80275c4b760bc5b7f328e36d077a52dc0ca79f64ce89f621fc3714a5015a.js", "components/NativeSelect": "/assets/components/NativeSelect-f3126370c0f01f32db87fc66d24be93959ecbcbf6eed7e2a790407c8bd07975d.js", "components/SideNavigation": "/assets/components/SideNavigation-af526abe8db98cc22cf7675518f35a4273ce5403df799d2990f67b8c85e2fc88.js", "components/ThemeSwitcher": "/assets/components/ThemeSwitcher-6c10857ff3cb51d1a2cb1b5e67dcb0237862e2e2660775d538c9a2aa696b27ff.js", "components/Toasts": "/assets/components/Toasts-9447093534129b4505773265eb726c5d74e8e461ad4171701de749ce1270e0a5.js", "components/UserMenu": "/assets/components/UserMenu-a929287b16464b4f65cca5c0561c868cbd2b892ff328346639ad0bc3a57d3613.js", "components/WithSpinner": "/assets/components/WithSpinner-9551c08ac773d33332213e2910656ba3d169a292b542433c4010e658544e3d6d.js", "components/admin/ArticleLink": "/assets/components/admin/ArticleLink-6548e3ec0ab7c7d7f20d10be9008e4c2a9478c8c94a29b51d20de8ef160fc8d8.js", "components/admin/ArticlesSelect": "/assets/components/admin/ArticlesSelect-3037dc73bb5c65ad133ded2306231f402d6fbfcfc9340ea792ccb6f957d7eb1c.js", "components/billing/BillableBadge": "/assets/components/billing/BillableBadge-324fcfb6af55f6bcf1307da02550c99214742543b6ec604e5da2315514c18a63.js", "components/billing/ChangePlans": "/assets/components/billing/ChangePlans-6e7f795c5c9f9c8752a7c0f1f7662daeaf56d716ab5692177fa1b56b24ac4cab.js", "components/billing/FeatureCountSlider": "/assets/components/billing/FeatureCountSlider-0ae3feb80b9b35d26f66beab8b2a1eea0e6ffc3f6f5bdd70f36daf14e339f9d4.js", "components/billing/PaymentMethodsSelect": "/assets/components/billing/PaymentMethodsSelect-302a8e448eaf713fb47d636139b3d5d16253e05a0f683d3bb6608318e8d2aafc.js", "components/billing/ProductVariables": "/assets/components/billing/ProductVariables-55783b5fdfc4e11926b3f24a7cb71c3ca371d9bb8a8b70928ff7ddad9f251450.js", "components/billing/ResponderSeatsSelector": "/assets/components/billing/ResponderSeatsSelector-817ba186dfed0791532a95c046649ef4acf8ed17e562673f114e7963aa860c36.js", "components/billing/UpcomingPlan": "/assets/components/billing/UpcomingPlan-6d193369bd135f182d4d44a7d4a7b50c9da5f4418ac07870e4b87c6024ab9282.js", "components/charts/BarChart": "/assets/components/charts/BarChart-bc4ce8200eddd395f14d2a1702e44c72210d4b734288daee4ffee2c623e65c92.js", "components/charts/theme": "/assets/components/charts/theme-91f17631e1543059e1bd76591747cc904857d5a6b3c92cd2d5fd4f97aef047de.js", "components/charts/utils/formatTooltip": "/assets/components/charts/utils/formatTooltip-31c7869ec007a414ad48ff05015b6b051216e66292847eaa2e585f407a674347.js", "components/docs/Code": "/assets/components/docs/Code-79511ae7d67e91832582328b130a1e5101633742564841d729d5420590a37453.js", "components/docs/CodeTab": "/assets/components/docs/CodeTab-744ff814f71bcbb737fa0e56d63d7e6f2c9cb70d8220b3a376e963d69ace3acc.js", "components/docs/TokenLoader": "/assets/components/docs/TokenLoader-fb07b2b2fdae0c20e0d89549f581a8adfeb53b7378021b6fa7f621023804474c.js", "components/docs/TokenNotice": "/assets/components/docs/TokenNotice-917f947c52668c272e9446aca305c2a2648c636652e4f83ac33ccde822e049fd.js", "components/docs/TokenPicker": "/assets/components/docs/TokenPicker-54e7327cdc8a42ef204b76063bfe6ede07517b8e96f69e8e36ad75e3c7a86904.js", "components/forms/AuditLogsToggle": "/assets/components/forms/AuditLogsToggle-218441a865c39560f29feea542bdea35638a757811eaaedfbff99d32b5d70198.js", "components/forms/BasicForm": "/assets/components/forms/BasicForm-61c5576c0c29b259abdf208fd812c3a0d6851e864d9aee87671c9bd865c185fe.js", "components/forms/Collapse": "/assets/components/forms/Collapse-81b332eae8af2cf0786548067b2f25e0ce8307c073e43a04b7b41d390cae5bbb.js", "components/forms/CopyOnClick": "/assets/components/forms/CopyOnClick-bb61fb00b51260d3aaf3651ca3cebb58d144fc5e0a52a09d952a47543d29d616.js", "components/forms/DotsDropdown": "/assets/components/forms/DotsDropdown-9f004c65e18a56f941167f550d24a28ba5c2e4e750be16633c65fe7e9b606423.js", "components/forms/Dropdown": "/assets/components/forms/Dropdown-f34b6de45049e8444220aa92199d58221552c245d498e7f6672a288c90ae2904.js", "components/forms/GatedToggle": "/assets/components/forms/GatedToggle-eac499fb5b20c94e1ad4611dfbb4f041e49710067a1473e6f8dd6556f864de11.js", "components/forms/HeadersJson": "/assets/components/forms/HeadersJson-3b4042d0035e077ea32f2cbb1e3e731664e7d6f89d7a6d0088a5bbc3b8a808dc.js", "components/forms/HighlightedTextarea": "/assets/components/forms/HighlightedTextarea-deb48b71df7a329d622f3b94590573bd3ff3d8c9b9f670d4f16163e17649ec18.js", "components/forms/HolidayModeForm": "/assets/components/forms/HolidayModeForm-69a117484e82dd5fcadda2177cd7b78876a2bc787f43ffd04fa012342eb5f638.js", "components/forms/IncidentSilencingForm": "/assets/components/forms/IncidentSilencingForm-730d2e9e0f4b14c3207ccf7eff428865018256abb5328d80fe9aed9df8f2bad3.js", "components/forms/LogoField": "/assets/components/forms/LogoField-ba2e7c78192d56d093ca4785f0891fc33dac0af8e01ba9744ae6694cb9fdf6a0.js", "components/forms/ModalTemplate": "/assets/components/forms/ModalTemplate-5b81c90cc376daae97f10af81ff234ef71ce1d4e94d7581e4d371dbbd4bb6202.js", "components/forms/MultiplyingInput": "/assets/components/forms/MultiplyingInput-56cdc061458582b995fb7dd7e0a74da4a7dc3a1c43ba8ebfd68721333616cff1.js", "components/forms/Select": "/assets/components/forms/Select-432a60a8168bd7622134d1a1ab7e4160c7b24aa2d28f21c02c27b904b546ca19.js", "components/forms/SelectWithSearch": "/assets/components/forms/SelectWithSearch-ed9e092ca47f10b9600a879d4f657ce2aa88fb1fee2b8254b5febe75f7264b40.js", "components/forms/SessionsForm": "/assets/components/forms/SessionsForm-c803dab2561e01cb48eda8bd0d3a8899349a19d65425aa99aeb1ec07f8782085.js", "components/forms/Slider": "/assets/components/forms/Slider-90f7010ecac763bf7233f35543741d8c859f11bf9be10b9e201ad333a078f25f.js", "components/forms/Spinner": "/assets/components/forms/Spinner-75db6d9f6d60b5eff5865ea90f129f6375b97e4c1127a6d9fd88942cc5d92259.js", "components/forms/TimezoneSelect": "/assets/components/forms/TimezoneSelect-a76a65022a969771e1ed22474ac69b7d0807a01c125b7e6c8786f418fe714d5c.js", "components/forms/Toggle": "/assets/components/forms/Toggle-3671691165989f989c10f5c4437322cb9bdcff290995748ef3e376cc5c107242.js", "components/forms/Tooltip": "/assets/components/forms/Tooltip-dcc2db1d673193afb8a7ad151c095309960a79c7f83f1c3d0f7b3a8651131bdd.js", "components": "/assets/components/index-64b4e9c85048a4acebe0d5ba7381340b40cee2b2ab4926fe765f31d6c866fb35.js", "components/notifications/Dropdown": "/assets/components/notifications/Dropdown-7d7ecf89e5cd8dcf47d1b26a1a5fff1a7b5360c271cc751032b79bf49756812c.js", "components/notifications/Item": "/assets/components/notifications/Item-343b52de1b1ee25e42e187660d689010f529cd54446505ae7e95a3ea0cf84f3d.js", "components/onboarding/PhonePrefixSelect": "/assets/components/onboarding/PhonePrefixSelect-0063c7eaba8bd54369451470c3b47d573b2a07d11b3c72df344808eab3097f83.js", "components/sessions/EmailPrompt": "/assets/components/sessions/EmailPrompt-03e0f0a98e73f7100ba92693a6a0864b341963182ddd9cbea095deb34fb787e1.js", "components/shared/DatePickerRangeSelector": "/assets/components/shared/DatePickerRangeSelector-08034d92ea3c4ea836b49f0c28975dec8571bcc6518f431e81301df06a3a256e.js", "components/shared/DateRangeSelector": "/assets/components/shared/DateRangeSelector-ac430d44c7317119204fcb38d35ea55c98d4e85d589a19b9ca2b30f3bcecb680.js", "components/stores/DocsStore": "/assets/components/stores/DocsStore-1c7507c869081858851f726d209e719b1a4d0c6c297930d41da5a472b7aa564d.js", "components/stores/FollowerStore": "/assets/components/stores/FollowerStore-5b78631dc93e290b65508617b7a63640ac5333377d1e20e95c085f9d86b9387b.js", "components/stores/MainStore": "/assets/components/stores/MainStore-fedba35ede04c4bce2be7c47969d6490d863ee416be80673288cf0e54a6f708a.js", "components/stores/ToastStore": "/assets/components/stores/ToastStore-b345053ac094eb51397158d55b71fc6d093a32087b8005bd9b0743967da3de48.js", "components/stores/UsageStore": "/assets/components/stores/UsageStore-78313fd41a5780117d579b9d5c86593e07ae981a87a8c015c417d36fa3274f79.js", "components/stores/index": "/assets/components/stores/index-790f621e33d661fa7aaaaadb06ba15928ffd964ceebe34b753720e997c7f3034.js", "components/usage/Chart": "/assets/components/usage/Chart-1fc66e48818350d300b70366d9aaca429b09689f6a9549399c1db930c690c5d9.js", "components/usage/DateRangeSelector": "/assets/components/usage/DateRangeSelector-8a093aedd6ccb36ad67886b307727d0cfb5311655e9aef5b421db4ccd22bb378.js", "components/usage/DimensionTab": "/assets/components/usage/DimensionTab-67e4ca9896636c3a88d508919ffaad7692b43b7d283f617ac6d83484bbf94390.js", "components/usage/ProductLink": "/assets/components/usage/ProductLink-6a5c70201ae98b5bf510d38c930e0b336ea0161a355e47d7d2fac57f0ac3c310.js", "components/usage/ResolutionSelector": "/assets/components/usage/ResolutionSelector-29e54e93195b8b9ef6753706f40ce43c1137c034c91a5259c244279f8a48a187.js", "components/usage/Table": "/assets/components/usage/Table-ee861fb508aca3d8cdf56c3aa10b24a1f736711c86167020238cf02ab6d4b646.js", "composables/useCollapseHeight": "/assets/composables/useCollapseHeight-17aee4ad47813c68e489fbc5ada535c42e74858948cbf17b8e70654cda85c0cf.js", "composables/useCommand": "/assets/composables/useCommand-d60c11f032654ef93461e8a4f4595edd0360ec0f6a0133d543feddcddd51ee8f.js", "composables/useHotkey": "/assets/composables/useHotkey-8e49d44a9a27667af72bc8cdb64df15b234137457afbd29278f8cf86de89cbe0.js", "composables/useTheme": "/assets/composables/useTheme-4aadc05e800ed3f5402a2eb253a109cbcae04dd915decf9f80852a0b10218db9.js", "entrypoints/admin_articles": "/assets/entrypoints/admin_articles-33e05ea74198c1755e1dac82e75f35077da3140092d5b7e1dfe453e02da93242.js", "entrypoints/application": "/assets/entrypoints/application-f0b5c4dad0df513cb8e55b3acdd8a0f2ba8c435bdb004d47a84e33ed96d081f4.js", "entrypoints/articles": "/assets/entrypoints/articles-228b5e6202a0dc83e8b7700983cf58b7cc84b06398dd3c854d3437809c6abb3d.js", "entrypoints/auth": "/assets/entrypoints/auth-b4745d7dbd024e9dc2c5617b2baf7c19205d5ef748d38418eeacd382a574240e.js", "entrypoints/betterstack_v2": "/assets/entrypoints/betterstack_v2-f0c8f8db93692df43bc1d4b430e854d39e123457a2b985ec1d8da9abc290ea82.js", "entrypoints/front": "/assets/entrypoints/front-300178d82dbd1adeb592bbd9f8b2d6421df8e5ae963041d808a67fa28e37ad79.js", "entrypoints/logtail": "/assets/entrypoints/logtail-86206ffccef010b24d771ebce8a91addc7d4391907d8dce3aea1a696dc31a15c.js", "entrypoints/mobile": "/assets/entrypoints/mobile-22d02a6569bac82bff507b79aad8172155ec4c9631ded334c8a9ba9a27ff0321.js", "entrypoints/onboarding": "/assets/entrypoints/onboarding-61bd5234ef3e2513b0a93ae8a2d127aba7450ed26f91d14aaf056f67e2e05415.js", "entrypoints/playwright": "/assets/entrypoints/playwright-2bca3f78b1face6d4bc3c50726d00fcb2823ebc7b9d64ace23b1729e6879dac4.js", "entrypoints/uptime": "/assets/entrypoints/uptime-d57f0cee58d22bac0679c1e7e06ed8afdaeb911306265cd118fe56e38a307f09.js", "front/router": "/assets/front/router-15f34318361051c9844c70c974ab777afc4e6402411fcbd694e757a877cbec40.js", "logtail_controllers": "/assets/logtail_controllers/index-1595afa1409ee5bf0188e35ef178b9ed9ec5a58fe15b68da82703e39dc78e194.js", "logtail_controllers/plans_controller": "/assets/logtail_controllers/plans_controller-e216365c38db8814403c45b7f26dab79fa9995d42f75df5fdbdc22db943b429e.js", "mobile_controllers/ButtonBridgeComponent": "/assets/mobile_controllers/ButtonBridgeComponent-30626673e61f0e3c26c3d8b6002b7fa66012d9e1b445cb4d02074bdd077861e2.js", "mobile_controllers/EventBridgeComponent": "/assets/mobile_controllers/EventBridgeComponent-313b96e5de16ed230efe1370792c3815796df581467629a23e85a78842f25cab.js", "mobile_controllers": "/assets/mobile_controllers/index-18b25ed766e85c735e5a0f22e4aede8bab9e362b6975609f0f26dac171c0063a.js", "mobile_controllers/otp_entry_controller": "/assets/mobile_controllers/otp_entry_controller-b3220a52d53f3907aebe6d65788e5dcbecd109e69a12880c9aaf3bb1d467b131.js", "routes": "/assets/routes-31d0c1b39b018cca46f0bb5fe5be4f3c54526839cdffc7d21adb34d812fa4817.js", "shared/channels/appearance_subscription": "/assets/shared/channels/appearance_subscription-91167fdabc87648c3d424e872db9c0f3d009423fe043fdfce071f5319ef1b50e.js", "shared/channels/consumer": "/assets/shared/channels/consumer-54d75b5b4059931e8792cb76161d6ec1d2da116317920038eef3567eab056919.js", "shared/channels/create_follower_subscription": "/assets/shared/channels/create_follower_subscription-73d61d46010b368240046908b53bb2b1ae047b2a69313a2e1ca4b2e998d84066.js", "shared/channels/followee_subscription": "/assets/shared/channels/followee_subscription-fddf3cb73d8e828fced66aef456dec5d9b4a076fbea3a9b9af0caf58a52da8a1.js", "shared/collaboration/Appearances": "/assets/shared/collaboration/Appearances-36a2551e217b7db1563b745bdef25aea353036bd3748f5e274ba093b13bca260.js", "shared/collaboration/GhostCursors": "/assets/shared/collaboration/GhostCursors-d1819bfc45e3af8bfd0ee66639eb9b2d638e649808228941a76099a878180c3e.js", "shared/collaboration/follower/Controls": "/assets/shared/collaboration/follower/Controls-7174c73834b0413b127d83513ce202ac5e088bbf5957fc9a8d53a483f8fe4403.js", "shared/collaboration/follower/DirectFollower": "/assets/shared/collaboration/follower/DirectFollower-b02f601917eaec374b07937ab49c11357c34cf8e2b0ebc6915c84b83d17a3e44.js", "shared/collaboration/follower/Error": "/assets/shared/collaboration/follower/Error-c60522f4be41a4f7adf14b78b983ff6ca81253de314a1ef756d1161ae45fda92.js", "shared/collaboration/follower/Follower": "/assets/shared/collaboration/follower/Follower-5bbd7f6a41eeb931c5a521c8218c74a1397bbcd19816de35c729d14f7bfa2895.js", "shared/collaboration/follower/FollowerGhostCursors": "/assets/shared/collaboration/follower/FollowerGhostCursors-09b7222dde8cf5701d0faa8e311c2b5f37306732470b0be77a669fb4dead5d4d.js", "shared/collaboration/follower/LoadingScreen": "/assets/shared/collaboration/follower/LoadingScreen-b82a0ba91ca92c1183aa0aa8dc5051e93597fdd78dcc5f3878dd895b11e7f811.js", "shared/collaboration/follower/ProxyFollower": "/assets/shared/collaboration/follower/ProxyFollower-371025b83b92fb933005e7071692af402665f136f0180b5a4aec9b2911317708.js", "shared/collaboration/utils": "/assets/shared/collaboration/utils-67288c5f49092d9f154fd39c22fc4872f246af59e155f64a212d807ba40e129d.js", "shared/command_palette/CommandIndexWorker": "/assets/shared/command_palette/CommandIndexWorker-73e6e06432c6c072acbad94b5f191c7c016e735354d526b44998f2ecda4ac654.js", "shared/command_palette/CommandPalette": "/assets/shared/command_palette/CommandPalette-45d56d89e1abc0c01e621bad55f0f57e8934989ebe6cba2158919febb00a2a72.js", "shared/command_palette/CommandsManager": "/assets/shared/command_palette/CommandsManager-2f4f67654c9291f9bba5a7060071e783c852ddae39ccb180825bd1992b1bb219.js", "shared/command_palette/HotkeyManager": "/assets/shared/command_palette/HotkeyManager-cd94c551611c0f03e112789955a6ec415dce5060970b723ec7f00ee3d6f8e8e2.js", "shared/hubspot_demo_form": "/assets/shared/hubspot_demo_form-6812046f945724db91d38fc0b7a5b68ac6557fd3dcccdb2cf171bdfa1ed16bd4.js", "shared/utils/DelayedBuffer": "/assets/shared/utils/DelayedBuffer-c668422bf7cd1f0c74b85a84b43d4cd6c8ef9aaff720b9b567f9696e1cc70860.js", "shared/utils/interop": "/assets/shared/utils/interop-9f5c1743e3cd5f0de6006fa2749e139cdd0475e08002581d4fe2eaaa69bb50f7.js", "shared/utils/is-mac": "/assets/shared/utils/is-mac-93b71cfbb5b2734018e4113b6b1d7fa3532ea1f8d206e0bd20f31c0548c446f5.js", "shared/utils/script-loader": "/assets/shared/utils/script-loader-92764982164c12f674e90cd2f95a691992d89fa92621c0508f34450d80714f66.js", "uptime_controllers": "/assets/uptime_controllers/index-aec018857a67541da9db4f59349cfe9a7ca3ff1923e40b8d21d8999711a4fbbe.js", "uptime_controllers/plans_controller": "/assets/uptime_controllers/plans_controller-385a4b447247383d60bded305bfcaaaeabc0bccbb521b118028627f0152d619b.js", "utils/RangeTimestamp": "/assets/utils/RangeTimestamp-d19d11ed00082000ed6e4ba5df4e1240d27a3e654c61962d09a05a1da8670c0c.js", "utils/RelativeTimestamp": "/assets/utils/RelativeTimestamp-9855b55b1a0069362546519a1f9196ee9e16bee020bb4212099e1eedad14ee03.js", "utils/authToken": "/assets/utils/authToken-c7a1cd63fcf0ad9de31981d3f453c8076d16ca1255b6046017ed2272f3641a71.js", "utils/cardBrands": "/assets/utils/cardBrands-ea5db81e7561737ed83b636a4b6febb5db7cf6057e3dda81eba750d94eacbf01.js", "utils/chartTooltipPosition": "/assets/utils/chartTooltipPosition-527b42ecc40c85cf2336bdf7c11bdc0767d1258b5ef803df7aaeda87a78b6f4d.js", "utils/date": "/assets/utils/date-d3fcf0323a2830e49539b258684b7a73164cb6852b92d4101ce3112d5dde00ed.js", "utils/externalRoutes": "/assets/utils/externalRoutes-8202a3c23971ea5777421ceb02d30d91068394c8dc0a3050359e8df537009f7f.js", "utils/fetchJson": "/assets/utils/fetchJson-85e0da5d35050a520878375b5fba9b8c528671d2dfa2ff52cf48567bbb6a3156.js", "utils/formatters": "/assets/utils/formatters-ed707477386ff3c1040838ed28f6b17bbef0360968f058c9fac62a1a45355af9.js", "utils/highlight": "/assets/utils/highlight-458c91c22b204a7cee20df25793dc516179b84951bfe420948bf3097ac913b61.js", "utils/hotkeyLabel": "/assets/utils/hotkeyLabel-c7dc521969055b65497a498c7b57b828980e5431fdfc9632d05548d8c3b3adda.js", "utils/importmap": "/assets/utils/importmap-3fb68c776ce85b3790bb9b5753ab4e0ab2ceb0abdcc8014953cdfec2c5645cea.js", "utils/isTouchDevice": "/assets/utils/isTouchDevice-eedba28010f2ea6c3bf74f5717049a1580d0a4d78727a3cd79bdb93abd35cd56.js", "utils/miniBindVueApp": "/assets/utils/miniBindVueApp-db826ead93378a6b0fb33e4206bf12fa42895b140f7331a988030771c8370175.js", "utils/naturalLanguageTimeParser": "/assets/utils/naturalLanguageTimeParser-584f895f2ec4c4df8aa78843d8548c50c2f6df0200fed52197b79217ea8ee588.js", "utils/permissions": "/assets/utils/permissions-4327b486a3b260c0fdab95dbd2c4c4c901ff02028cb9fdd3f4476b238b40e596.js", "utils/platforms": "/assets/utils/platforms-dfbf6f3cc0a3ba42522e6d46da025f610a68024f9db9984b419f523b8ff5ad88.js", "utils/queryParams": "/assets/utils/queryParams-313f382500c03f6ae5609c10871ff0836ff1eb43cf6a68fa1addcc455fa27799.js", "utils/rebindComponents": "/assets/utils/rebindComponents-f30d606edfa41b43cad6c2a6d4656a1df83a3c73cf2fb6f8479e18203426f87d.js", "utils/timeago": "/assets/utils/timeago-2b7286c271bbc61d1258a0f65dc709e3288edd5c37e9e17f4058325a59b2517b.js", "utils/timestampToDayjs": "/assets/utils/timestampToDayjs-2b2c7c6e6b3b998b5cf23a9d9424d253ba071689d163abe9aae21df65c8a8424.js", "utils/timezone": "/assets/utils/timezone-b1171452a6a2b4d7f1a322a671886690f1647a264fb488f1e477edce29d7dd01.js", "utils/timezoneList": "/assets/utils/timezoneList-e24ecbd5932e311e8e63f2eddc66165fd12c6c0f5c99e10a0c821945d092398c.js", "vendor/aos@2.3.4": "/assets/vendor/aos@2.3.4-685eb7c655b107524a998227037e3774b68de3aae7d7d9c4778ad93f28da0134.js", "vendor/cuid@2.1.8": "/assets/vendor/cuid@2.1.8-04b3f7922ef09493e6de1674985aa9e6db1ef22b5b459ff55dfebfc7fb223403.js", "vendor/domurl@2.3.4": "/assets/vendor/domurl@2.3.4-db15c581b8052eb19b45e8d67676e0029de117dd052d52fb9b4dff92cb3c80cd.js", "vendor/floating-vue@5.2.0": "/assets/vendor/floating-vue@5.2.0-e493e91064e9956ff82c5c23defd763087421f0c97b889cf33239d802a5e8fa8.js", "vendor/frontapp-ui-bridge@2.0.0-beta1": "/assets/vendor/frontapp-ui-bridge@2.0.0-beta1-d3b766ae248a8ed4ac11ebfd6f6ac7a31294dde9cb3d9f047192921b6c1ca1c4.js", "vendor/mime-match@1.0.2": "/assets/vendor/mime-match@1.0.2-4d959bda662997b61e998d18ad41c2ae215771ae130d85a5f05ced0541000c37.js", "vendor/namespace-emitter@2.0.1": "/assets/vendor/namespace-emitter@2.0.1-b396e60bd4150b092d9eb238c73ef723dd54dfdc6c7bbe40e903efbd9659903d.js", "vendor/primevue@4.0.7": "/assets/vendor/primevue@4.0.7-292f4d15f9e736212277eaa302e66b4c72e27d267baa75f557b19221f20d4d57.js", "vendor/sentry-vue@8.13.0": "/assets/vendor/sentry-vue@8.13.0-167743aecd5b6cc9aa2899beec92879d0753ed6df2b78e8ea834dc25bbc8b375.js", "vendor/stimulus@2.0.0": "/assets/vendor/stimulus@2.0.0-5b5f813e2414d6e786a903c4ba38ba495cafe9705d1172a88e85eedf8f4bf25a.js", "vendor/transloadit-prettier-bytes@0.0.9": "/assets/vendor/transloadit-prettier-bytes@0.0.9-7d84b56abd9a347840cc75802bff997f4d80aa98226989b3b531586ca83de8de.js", "vendor/wildcard@1.1.2": "/assets/vendor/wildcard@1.1.2-5fe9351108ff44f2fe5e044f79bc7858778c58ba61c8cb6b5fd60e6bf5684bb1.js", "@betterstack/shared/channels/appearance_subscription": "/assets/shared/channels/appearance_subscription-91167fdabc87648c3d424e872db9c0f3d009423fe043fdfce071f5319ef1b50e.js", "@betterstack/shared/channels/consumer": "/assets/shared/channels/consumer-54d75b5b4059931e8792cb76161d6ec1d2da116317920038eef3567eab056919.js", "@betterstack/shared/channels/create_follower_subscription": "/assets/shared/channels/create_follower_subscription-73d61d46010b368240046908b53bb2b1ae047b2a69313a2e1ca4b2e998d84066.js", "@betterstack/shared/channels/followee_subscription": "/assets/shared/channels/followee_subscription-fddf3cb73d8e828fced66aef456dec5d9b4a076fbea3a9b9af0caf58a52da8a1.js", "@betterstack/shared/collaboration/Appearances": "/assets/shared/collaboration/Appearances-36a2551e217b7db1563b745bdef25aea353036bd3748f5e274ba093b13bca260.js", "@betterstack/shared/collaboration/GhostCursors": "/assets/shared/collaboration/GhostCursors-d1819bfc45e3af8bfd0ee66639eb9b2d638e649808228941a76099a878180c3e.js", "@betterstack/shared/collaboration/follower/Controls": "/assets/shared/collaboration/follower/Controls-7174c73834b0413b127d83513ce202ac5e088bbf5957fc9a8d53a483f8fe4403.js", "@betterstack/shared/collaboration/follower/DirectFollower": "/assets/shared/collaboration/follower/DirectFollower-b02f601917eaec374b07937ab49c11357c34cf8e2b0ebc6915c84b83d17a3e44.js", "@betterstack/shared/collaboration/follower/Error": "/assets/shared/collaboration/follower/Error-c60522f4be41a4f7adf14b78b983ff6ca81253de314a1ef756d1161ae45fda92.js", "@betterstack/shared/collaboration/follower/Follower": "/assets/shared/collaboration/follower/Follower-5bbd7f6a41eeb931c5a521c8218c74a1397bbcd19816de35c729d14f7bfa2895.js", "@betterstack/shared/collaboration/follower/FollowerGhostCursors": "/assets/shared/collaboration/follower/FollowerGhostCursors-09b7222dde8cf5701d0faa8e311c2b5f37306732470b0be77a669fb4dead5d4d.js", "@betterstack/shared/collaboration/follower/LoadingScreen": "/assets/shared/collaboration/follower/LoadingScreen-b82a0ba91ca92c1183aa0aa8dc5051e93597fdd78dcc5f3878dd895b11e7f811.js", "@betterstack/shared/collaboration/follower/ProxyFollower": "/assets/shared/collaboration/follower/ProxyFollower-371025b83b92fb933005e7071692af402665f136f0180b5a4aec9b2911317708.js", "@betterstack/shared/collaboration/utils": "/assets/shared/collaboration/utils-67288c5f49092d9f154fd39c22fc4872f246af59e155f64a212d807ba40e129d.js", "@betterstack/shared/command_palette/CommandIndexWorker": "/assets/shared/command_palette/CommandIndexWorker-73e6e06432c6c072acbad94b5f191c7c016e735354d526b44998f2ecda4ac654.js", "@betterstack/shared/command_palette/CommandPalette": "/assets/shared/command_palette/CommandPalette-45d56d89e1abc0c01e621bad55f0f57e8934989ebe6cba2158919febb00a2a72.js", "@betterstack/shared/command_palette/CommandsManager": "/assets/shared/command_palette/CommandsManager-2f4f67654c9291f9bba5a7060071e783c852ddae39ccb180825bd1992b1bb219.js", "@betterstack/shared/command_palette/HotkeyManager": "/assets/shared/command_palette/HotkeyManager-cd94c551611c0f03e112789955a6ec415dce5060970b723ec7f00ee3d6f8e8e2.js", "@betterstack/shared/hubspot_demo_form": "/assets/shared/hubspot_demo_form-6812046f945724db91d38fc0b7a5b68ac6557fd3dcccdb2cf171bdfa1ed16bd4.js", "@betterstack/shared/utils/DelayedBuffer": "/assets/shared/utils/DelayedBuffer-c668422bf7cd1f0c74b85a84b43d4cd6c8ef9aaff720b9b567f9696e1cc70860.js", "@betterstack/shared/utils/interop": "/assets/shared/utils/interop-9f5c1743e3cd5f0de6006fa2749e139cdd0475e08002581d4fe2eaaa69bb50f7.js", "@betterstack/shared/utils/is-mac": "/assets/shared/utils/is-mac-93b71cfbb5b2734018e4113b6b1d7fa3532ea1f8d206e0bd20f31c0548c446f5.js", "@betterstack/shared/utils/script-loader": "/assets/shared/utils/script-loader-92764982164c12f674e90cd2f95a691992d89fa92621c0508f34450d80714f66.js", "vue": "https://cdnjs.betterstack.com/vue@3.4.31/dist/vue.esm-browser.prod.js", "@vue/devtools-api": "https://cdnjs.betterstack.com/@vue/devtools-api@6.6.3/lib/esm/index.js", "vue-demi": "https://cdnjs.betterstack.com/vue-demi@0.14.8/lib/index.mjs", "pinia": "https://cdnjs.betterstack.com/pinia@2.1.7/dist/pinia.esm-browser.js", "vue-turbolinks": "https://cdnjs.betterstack.com/vue-turbolinks@2.2.2/index.js", "@sentry/vue": "/assets/vendor/sentry-vue@8.13.0-167743aecd5b6cc9aa2899beec92879d0753ed6df2b78e8ea834dc25bbc8b375.js", "@headlessui/vue": "https://cdnjs.betterstack.com/@headlessui/vue@1.7.4/dist/headlessui.esm.js", "primevue": "/assets/vendor/primevue@4.0.7-292f4d15f9e736212277eaa302e66b4c72e27d267baa75f557b19221f20d4d57.js", "vueform-multiselect": "https://cdnjs.betterstack.com/@vueform/multiselect@2.6.10/dist/multiselect.js", "vueform-slider": "https://cdnjs.betterstack.com/@vueform/slider@2.1.10/dist/slider.js", "@hotwired/turbo-rails": "https://cdnjs.betterstack.com/@hotwired/turbo-rails@8.0.4/app/assets/javascripts/turbo.js", "@hotwired/hotwire-native-bridge": "https://cdnjs.betterstack.com/@hotwired/hotwire-native-bridge@1.0.0/dist/hotwire-native-bridge.js", "@rails/actioncable": "https://cdnjs.betterstack.com/@rails/actioncable@7.0.4/app/assets/javascripts/actioncable.esm.js", "@rails/activestorage": "https://cdnjs.betterstack.com/@rails/activestorage@6.0.0/app/assets/javascripts/activestorage.js", "js-cookie": "https://cdnjs.betterstack.com/js-cookie@3.0.1/dist/js.cookie.min.mjs", "lazysizes": "https://cdnjs.betterstack.com/lazysizes@5.3.2/lazysizes.min.js", "posthog-js": "https://cdnjs.betterstack.com/posthog-js@1.64.0/dist/es.js", "el-transition": "https://cdnjs.betterstack.com/el-transition@0.0.7/index.js", "dayjs": "https://cdnjs.betterstack.com/dayjs@1.11.7/esm/index.js", "dayjs/": "https://cdnjs.betterstack.com/dayjs@1.11.7/esm/", "dayjs/plugin/quarterOfYear.js": "https://cdnjs.betterstack.com/dayjs@1.11.7/esm/plugin/quarterOfYear/index.js", "dayjs/plugin/timezone.js": "https://cdnjs.betterstack.com/dayjs@1.11.7/esm/plugin/timezone/index.js", "dayjs/plugin/utc.js": "https://cdnjs.betterstack.com/dayjs@1.11.7/esm/plugin/utc/index.js", "underscore/": "https://cdnjs.betterstack.com/underscore@1.13.6/modules/", "nanoevents": "https://cdnjs.betterstack.com/nanoevents@7.0.1/index.js", "decimal": "https://cdnjs.betterstack.com/decimal.js@10.4.3/decimal.mjs", "lodash/": "https://cdnjs.betterstack.com/lodash-es@4.17.21/", "lodash.throttle": "https://cdnjs.betterstack.com/lodash-es@4.17.21/throttle", "aos": "/assets/vendor/aos@2.3.4-685eb7c655b107524a998227037e3774b68de3aae7d7d9c4778ad93f28da0134.js", "stimulus": "/assets/vendor/stimulus@2.0.0-5b5f813e2414d6e786a903c4ba38ba495cafe9705d1172a88e85eedf8f4bf25a.js", "@hotwired/stimulus": "/assets/vendor/stimulus@2.0.0-5b5f813e2414d6e786a903c4ba38ba495cafe9705d1172a88e85eedf8f4bf25a.js", "domurl": "/assets/vendor/domurl@2.3.4-db15c581b8052eb19b45e8d67676e0029de117dd052d52fb9b4dff92cb3c80cd.js", "@floating-ui/dom": "https://cdnjs.betterstack.com/@floating-ui/dom@1.4.4/dist/floating-ui.dom.browser.min.mjs", "@floating-ui/core": "https://cdnjs.betterstack.com/@floating-ui/core@1.3.1/dist/floating-ui.core.browser.min.mjs", "floating-vue": "/assets/vendor/floating-vue@5.2.0-e493e91064e9956ff82c5c23defd763087421f0c97b889cf33239d802a5e8fa8.js", "echarts": "https://cdnjs.betterstack.com/echarts@5.4.0/dist/echarts.esm.min.js", "echarts/core": "https://cdnjs.betterstack.com/echarts@5.4.0/dist/echarts.esm.min.js", "vue-echarts": "https://cdnjs.betterstack.com/vue-echarts@6.6.1/dist/index.esm.min.js", "resize-detector": "https://cdnjs.betterstack.com/resize-detector@0.3.0/esm/index.js", "@uppy/aws-s3": "https://cdnjs.betterstack.com/@uppy/aws-s3@3.2.0/lib/index.js", "@uppy/aws-s3-multipart": "https://cdnjs.betterstack.com/@uppy/aws-s3-multipart@3.4.0/lib/index.js", "@uppy/core": "https://cdnjs.betterstack.com/@uppy/core@3.2.1/lib/index.js", "@uppy/core/": "https://cdnjs.betterstack.com/@uppy/core@3.2.1/", "@uppy/companion-client": "https://cdnjs.betterstack.com/@uppy/companion-client@3.1.3/lib/index.js", "@uppy/utils/": "https://cdnjs.betterstack.com/@uppy/utils@5.4.0/", "@uppy/store-default": "https://cdnjs.betterstack.com/@uppy/store-default@3.0.3/lib/index.js", "mime-match": "/assets/vendor/mime-match@1.0.2-4d959bda662997b61e998d18ad41c2ae215771ae130d85a5f05ced0541000c37.js", "namespace-emitter": "/assets/vendor/namespace-emitter@2.0.1-b396e60bd4150b092d9eb238c73ef723dd54dfdc6c7bbe40e903efbd9659903d.js", "nanoid/non-secure": "https://cdnjs.betterstack.com/nanoid@4.0.1/non-secure/index.js", "preact": "https://cdnjs.betterstack.com/preact@10.11.0/dist/preact.module.js", "@transloadit/prettier-bytes": "/assets/vendor/transloadit-prettier-bytes@0.0.9-7d84b56abd9a347840cc75802bff997f4d80aa98226989b3b531586ca83de8de.js", "wildcard": "/assets/vendor/wildcard@1.1.2-5fe9351108ff44f2fe5e044f79bc7858778c58ba61c8cb6b5fd60e6bf5684bb1.js", "@frontapp/plugin-sdk": "https://cdnjs.betterstack.com/@frontapp/plugin-sdk@1.0.1/dist/index.es.js", "@frontapp/ui-bridge": "/assets/vendor/frontapp-ui-bridge@2.0.0-beta1-d3b766ae248a8ed4ac11ebfd6f6ac7a31294dde9cb3d9f047192921b6c1ca1c4.js", "cuid": "/assets/vendor/cuid@2.1.8-04b3f7922ef09493e6de1674985aa9e6db1ef22b5b459ff55dfebfc7fb223403.js", "rxjs": "https://cdnjs.betterstack.com/rxjs@^7.4.0/dist/esm/index.js", "rxjs/": "https://cdnjs.betterstack.com/rxjs@^7.4.0/dist/esm/", "tslib": "https://cdnjs.betterstack.com/tslib@2.3.1/tslib.es6.js", "virtua": "https://cdnjs.betterstack.com/virtua@0.39.0/lib/vue/index.mjs", "flexsearch": "https://cdnjs.betterstack.com/flexsearch@0.7.43/dist/flexsearch.light.module.min.js" } }</script> <link rel="modulepreload" href="https://cdnjs.betterstack.com/vue@3.4.31/dist/vue.esm-browser.prod.js" nonce="933636584b1c4a10d880fb5e4c9d6da7"> <link rel="modulepreload" href="https://cdnjs.betterstack.com/@vue/devtools-api@6.6.3/lib/esm/index.js" nonce="933636584b1c4a10d880fb5e4c9d6da7"> <link rel="modulepreload" href="https://cdnjs.betterstack.com/vue-demi@0.14.8/lib/index.mjs" nonce="933636584b1c4a10d880fb5e4c9d6da7"> <link rel="modulepreload" href="https://cdnjs.betterstack.com/pinia@2.1.7/dist/pinia.esm-browser.js" nonce="933636584b1c4a10d880fb5e4c9d6da7"> <link rel="modulepreload" href="https://cdnjs.betterstack.com/vue-turbolinks@2.2.2/index.js" nonce="933636584b1c4a10d880fb5e4c9d6da7"> <script type="esms-options" nonce="933636584b1c4a10d880fb5e4c9d6da7">{"nonce":"933636584b1c4a10d880fb5e4c9d6da7"}</script> <script src="/assets/es-module-shims.min-d89e73202ec09dede55fb74115af9c5f9f2bb965433de1c2446e1faa6dac2470.js" defer="defer" data-turbo-track="reload" nonce="933636584b1c4a10d880fb5e4c9d6da7"></script> <script type="module" nonce="933636584b1c4a10d880fb5e4c9d6da7"> //<![CDATA[ import * as Sentry from '@sentry/vue' Sentry.init({ dsn: "https://5d12720845819aced5e1d8d5ed797725@o1399417.ingest.sentry.io/4507566687649792", // integrations: [Sentry.browserProfilingIntegration(), Sentry.browserTracingIntegration()], ignoreErrors: ["ignore:service_returned_401", "No error message"], environment: "production", release: window.cfg.app_version, // tracesSampleRate: 0.1, // profilesSampleRate: 0.1, denyUrls: [/chat-assets\.frontapp\.com/i], app: [], }); Sentry.setUser({ email: "" }); window.Sentry = Sentry; //]]> </script> <script type="module" nonce="933636584b1c4a10d880fb5e4c9d6da7">import "entrypoints/articles"</script> <script type="application/javascript" nonce="933636584b1c4a10d880fb5e4c9d6da7"> //<![CDATA[ if (!HTMLScriptElement?.supports?.('importmap')) { alert('Your browser is not supported. Please upgrade to a newer version of Chrome, Firefox, Safari or other modern browser.') } //]]> </script> <script type="module" nonce="933636584b1c4a10d880fb5e4c9d6da7">import "channels"</script> <link rel="stylesheet" href="/assets/articles-26ee8c0b904633bd2e9fa3e28fda9107f00ad024240f8a3431709c3106937375.css" media="all" data-turbo-track="reload" /> <style> @supports (-webkit-hyphens:none) { .book, .book:hover { filter: unset; } } </style> <script type="application/ld+json" nonce="933636584b1c4a10d880fb5e4c9d6da7"> //<![CDATA[ [ { "@context": "https://schema.org", "@type": "Article", "headline": "A Beginner's Guide to Log Management", "author": "Ayooluwa Isaiah", "image": "/og-image/log-management.png", "genre": "", "keywords": "", "publisher": { "@type": "Organization", "name": "Better Stack", "logo": { "@type": "ImageObject", "url": "https://betterstack.com/assets/logo-e81f7f79f9298e052fa7d3111a4311cd18f731f3fdf99859cb63e70002365bb3.png" } }, "url": "https://betterstack.com/community/guides/logging/log-management/", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://google.com/article" }, "datePublished": "2023-11-22T12:01:00Z", "dateCreated": "2023-11-22T12:01:00Z", "dateModified": "2024-02-16T11:58:55Z", "description": "Learn how log management can save you from the slow, frustrating, and costly process of manually sifting through log files." } ] //]]> </script><link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Regular.woff2' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Regular.woff' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Medium.woff2' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Medium.woff' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-SemiBold.woff2' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-SemiBold.woff' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Bold.woff2' rel='preload'> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Roobert/Roobert-Bold.woff' rel='preload'> <style> @font-face { font-family: "Roobert"; font-style: normal; font-weight: 400; font-display: swap; src: url("/static/fonts/Roobert/Roobert-Regular.woff2") format("woff2"), url("/static/fonts/Roobert/Roobert-Regular.woff") format("woff"); } @font-face { font-family: "Roobert"; font-style: normal; font-weight: 500; font-display: swap; src: url("/static/fonts/Roobert/Roobert-Medium.woff2") format("woff2"), url("/static/fonts/Roobert/Roobert-Medium.woff") format("woff"); } @font-face { font-family: "Roobert"; font-style: normal; font-weight: 600; font-display: swap; src: url("/static/fonts/Roobert/Roobert-SemiBold.woff2") format("woff2"), url("/static/fonts/Roobert/Roobert-SemiBold.woff") format("woff"); } @font-face { font-family: "Roobert"; font-style: normal; font-weight: 700; font-display: swap; src: url("/static/fonts/Roobert/Roobert-Bold.woff2") format("woff2"), url("/static/fonts/Roobert/Roobert-Bold.woff") format("woff"); } </style> <link as='font' crossorigin='anonymous' href='https://betterstack.com/static/fonts/Inter/Inter-latin.woff2' rel='preload'> <style> @font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap; src: url("/static/fonts/Inter/Inter-latin.woff2") format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } </style> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowText-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowText-Medium.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowText-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowDisplay-Medium.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="preload" href="/static/fonts/Helvetica/HelveticaNowDisplay-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <style> @font-face { font-family: 'Helvetica Now Text'; src: local('Helvetica Now Text Regular'), local('HelveticaNowText-Regular'), url('/static/fonts/Helvetica/HelveticaNowText-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; } @font-face { font-family: 'Helvetica Now Text'; src: local('Helvetica Now Text Medium'), local('HelveticaNowText-Medium'), url('/static/fonts/Helvetica/HelveticaNowText-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; } @font-face { font-family: 'Helvetica Now Text'; src: local('Helvetica Now Text Bold'), local('HelveticaNowText-Bold'), url('/static/fonts/Helvetica/HelveticaNowText-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; } @font-face { font-family: 'Helvetica Now Display'; src: local('Helvetica Now Display Medium'), local('HelveticaNowDisplay-Medium'), url('/static/fonts/Helvetica/HelveticaNowDisplay-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; } @font-face { font-family: 'Helvetica Now Display'; src: local('Helvetica Now Display Bold'), local('HelveticaNowDisplay-Bold'), url('/static/fonts/Helvetica/HelveticaNowDisplay-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; } </style> <meta content='Guides' name='meta-docsearch-hierarchy1'> <meta content='Logging' name='meta-docsearch-hierarchy2'> <meta content='Explainers' name='meta-docsearch-hierarchy3'> <meta content='A Beginner's Guide to Log Management' name='meta-docsearch-hierarchy4'> <meta content='What is Log Management?' name='meta-docsearch-name'> <meta content='A Beginner's Guide to Log Management' name='meta-docsearch-title'> <meta content='Learn how log management can save you from the slow, frustrating, and costly process of manually sifting through log files.' name='meta-docsearch-description'> <meta content='Learn how log management can save you from the slow, frustrating, and costly process of manually sifting through log files.' name='meta-docsearch-og_description'> <meta content='Ayooluwa Isaiah' name='meta-docsearch-authors'> </head> <body> <script type="application/javascript" nonce="933636584b1c4a10d880fb5e4c9d6da7"> //<![CDATA[ window.cfg = {"base_host":"betterstack.com","base_url":"https://betterstack.com","better_stack_url":"https://betterstack.com","uptime_url":"https://uptime.betterstack.com","logtail_url":"https://telemetry.betterstack.com","posthog":{"api_host":"https://t.betterstack.com","api_key":"phc_Tbfg4EiRsr5iefFoth2Y1Hi3sttTeLQ5RV5TLg4hL1W","related_domains":["betteruptime.com","logtail.com"]},"permissions":{},"controller":"articles","action":"show","app":"betterstack","theme":"system","organization_id":null,"team_id":null,"environment":"production","browser_timezone":null,"signed_in":false,"team_switcher_items":[]}; //]]> </script> <div class='main articles bg-[#0B0C14]'> <header class='z-40 top-0 left-0 right-0 flex justify-center helvetica bg-[#0B0C14]/80 relative before:absolute before:-z-10 before:inset-0 before:backdrop-blur-2xl' id='navbar'> <nav class='grow flex justify-between border-b mx-5 max-w-[1110px] h-[52px] text-[13px] leading-[100%] text-[#C9D3EE] border-[#727DA1]/15'> <div class='flex items-stretch gap-3'> <a aria-label='Go to homepage' class='flex items-center py-3' href='/'> <svg width='154' height='21' class='scale-[65%] -mx-6' alt='Better Stack' style='--currentColor: currentColor;'><use href='/assets/v2/better-stack-logo-0dd586683a61184ea953948d207470eeec73c76d81d57cd8af24bf56b36a90db.svg#root' /></svg> </a> <div class='hidden md:flex items-stretch gap-4'> <button aria-controls='platform-menu' aria-haspopup='menu' class='pl-3 py-3 pr-6 -mr-3 group relative flex items-center'> <div class='transition group-hover:text-white'>Platform</div> <span class='absolute right-2 text-[#656A7B]'><svg class='group-hover:rotate-180 transition w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-down-ca9a5c77e9dbeb8f579d14aa09540c2e7fd1df2b870baf7bb2b697d8628d2237.svg#root' /></svg></span> <div class='hidden group-hover:block absolute z-40 top-full left-0 text-left' id='platform-menu' role='menu' tabindex='-1'> <div class='rounded-lg border backdrop-blur-2xl flex w-[650px] p-[6px] bg-[#181926]/80 border-[#1F2433]/75'> <div class='flex-1 md:px-2 py-3 flex flex-col gap-1 border-b md:border-b-0 md:border-r relative border-[#1F2433]/40'> <div class='absolute -top-7 bottom-full left-0 right-0'></div> <a class='-my-1 p-1 flex items-center gap-3 group/uptime ml-[6px]' href='/uptime'> <svg width='69' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/uptime-logo-fcc6a01850aa0409e3743c6b70051bfc042504854c76a833ef52512d92dccc16.svg#root' /></svg> <div class='border-l relative top-[1px] h-[12px] border-[#727DA1]/30'></div> <div class='text-sm text-neutral-200 flex items-center'> <span class='mr-1'>Better Stack</span> <svg class='transition-all relative top-[1px] h-4 w-0 group-hover/uptime:w-4 inline' alt='' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/arrow-right-c07cd271c9c8d131084c513571295decfe8bf410e675cdde2686c1adf90b494b.svg#root' /></svg> <svg class='transition-all relative top-[1px] h-4 w-4 group-hover/uptime:w-0 inline' alt='' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/chevron-right-ee58bdc22e1fb683dd9ffd95ba0c4df56d8a2a0904d7ddbe63b6e2b4ab82f090.svg#root' /></svg> </div> </a> <hr class='mt-2 border-t border-[#1F2433]/40'> <a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/uptime"><span class='mr-1 text-[#7C87F7]'><svg class='relative top-[-2px] left-[2px] brand-primary-text-100 w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/globe-alt-5353caa43f8b313373d83572e4ad34e7a563836c16aa6096a14a264330713862.svg#root' /></svg></span> <div> <div class='font-medium'>Uptime monitoring</div> <div class='mt-1 text-xs text-neutral-200'>Get 10 monitors, and a status page totally free.</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/incident-management"><span class='text-[#7C87F7]'><svg width='25' height='24' alt='' class='relative top-[-2px] scale-[90%]' style='--currentColor: currentColor;'><use href='/assets/v2/calendar-6357844552d3ab90ba30b8f0b220de1523ff3aeee8c314a7805eecc7c7393754.svg#root' /></svg></span> <div> <div class='font-medium'>Incident management & on-call</div> <div class='mt-1 text-xs text-neutral-200'>Get a call when your website goes down</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/status-page"><span class='mr-1 text-[#7C87F7]'><svg width='20' height='20' alt='' class='relative top-[-1px] left-[2px]' style='--currentColor: currentColor;'><use href='/assets/v2/page-e138419398f9cc3e22fdf0693bc55a06d3cc6daec37069e878be827b24d07521.svg#root' /></svg></span> <div> <div class='font-medium'>Status page</div> <div class='mt-1 text-xs text-neutral-200'>Communicate downtime & build trust</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/incident-silencing"><span class='mr-1 text-[#7C87F7]'><svg class='relative top-[-1px] left-[2px] brand-primary-text-100 w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/bell-alert-bae43eae97d5f8f065ac7cfc69ecfb8325b06acf5014e922db6f5ed2b0da780c.svg#root' /></svg></span> <div> <div class='font-medium'>Incident silencing</div> <div class='mt-1 text-xs text-neutral-200'>Reduce alert noise & prevent alert fatigue</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/slack-incident-management"><div class='mr-1 w-[18px] h-[18px] mt-[2px] text-brand-primary-100'><svg alt='' class='w-full h-full relative top-[-1px] left-[2px]' style='--currentColor: currentColor;'><use href='/assets/v2/slack-77d755b1a6198a50134d9500924a07b2a55cfb06d5d704776cddd5d419701977.svg#root' /></svg></div> <div> <div class='font-medium'>Slack-based incident management</div> <div class='mt-1 text-xs text-neutral-200'>Resolve incidents directly in Slack</div> </div> </a></div> <div class='flex-1 mt-2 md:mt-0 md:px-2 py-3 flex flex-col gap-1'> <a class='ml-1 -my-1 p-1 flex items-center gap-3 group/logtail' href='/telemetry'> <svg width='227' height='48' alt='' class='w-[95px] h-5' style='--currentColor: currentColor;'><use href='/assets/v2/telemetry-logo-9698cd9133dcc1454659c661f4632fb8d4453b2e62bd2f98a248c69a3767fb8a.svg#root' /></svg> <div class='border-l relative top-[1px] h-[12px] border-[#727DA1]/30'></div> <div class='text-sm text-neutral-200 flex items-center'> <span class='mr-1'>Better Stack</span> <svg class='transition-all relative top-[1px] h-4 w-0 group-hover/logtail:w-4 inline' alt='' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/arrow-right-c07cd271c9c8d131084c513571295decfe8bf410e675cdde2686c1adf90b494b.svg#root' /></svg> <svg class='transition-all relative top-[1px] h-4 w-4 group-hover/logtail:w-0 inline' alt='' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/chevron-right-ee58bdc22e1fb683dd9ffd95ba0c4df56d8a2a0904d7ddbe63b6e2b4ab82f090.svg#root' /></svg> </div> </a> <hr class='mt-2 border-t border-[#1F2433]/40'> <a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/telemetry"><span class='text-[#7C87F7]'><svg width='25' height='24' alt='' class='relative top-[-2px] scale-[90%]' style='--currentColor: currentColor;'><use href='/assets/v2/code-insert-b8f283aedd6b241eb85334d4566ca3fbe15a8fc15c4ecf8638bc97f7da00e854.svg#root' /></svg></span> <div> <div class='font-medium'>Log management</div> <div class='mt-1 text-xs text-neutral-200'>Collect insights across your stack</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/infrastructure-monitoring"><span class='mr-1 text-[#7C87F7]'><svg class='relative top-[-1px] left-[2px] brand-primary-text-100 w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/server-stack-d9821d67c85b098d180212edfdab2f04b882ab293f52834aa72d0fd2fbe06b0d.svg#root' /></svg></span> <div> <div class='font-medium'>Infrastructure monitoring</div> <div class='mt-1 text-xs text-neutral-200'>OpenTelemetry-native infrastructure monitoring</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/dashboards"><span class='text-[#7C87F7]'><svg width='25' height='24' alt='' class='relative top-[-2px] scale-[90%]' style='--currentColor: currentColor;'><use href='/assets/v2/flipchart-2cc00e4a7089a6b436dc7686bb14f3cac3ebb97a628e5824ead4ee4b38f179b3.svg#root' /></svg></span> <div> <div class='font-medium'>Observability dashboards</div> <div class='mt-1 text-xs text-neutral-200'>Analyze metrics across your services</div> </div> </a></div> </div> </div> </button> <a class='hidden lg:flex p-3 hover:text-white transition items-center' href='https://betterstack.com/docs/uptime'> <span>Documentation</span> </a> <a class='hidden lg:flex p-3 hover:text-white transition items-center' href='/pricing'> <span>Pricing</span> </a> <form action='https://betterstack.com/community' class='m-0 flex items-stretch'> <button aria-controls='community-menu' aria-haspopup='menu' class='p-3 group relative flex items-center' type='submit'> <div class='transition group-hover:text-white'>Community</div> <span class='absolute -right-1 text-[#656A7B]'><svg class='group-hover:rotate-180 transition w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-down-ca9a5c77e9dbeb8f579d14aa09540c2e7fd1df2b870baf7bb2b697d8628d2237.svg#root' /></svg></span> <div class='hidden group-hover:block absolute z-40 top-full left-0 text-left' id='community-menu' role='menu' tabindex='-1'> <div class='rounded-lg border backdrop-blur-2xl flex flex-col gap-1 w-[174px] p-[6px] bg-[#181926]/80 border-[#1F2433]/75'> <a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%] md:hidden" href="https://betterstack.com/community"><span class='text-neutral-200'><svg class='mx-[2px] w-4 h-4 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/users-26c9af687d35d046de38f868bdfb06189d53f15b4a1c1593671ce07998a8ccb0.svg#root' /></svg></span> Community home </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="https://betterstack.com/community/guides"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/guides-3c7383ba1af5330b1c7df20232fb7c2df8ca63a0fad8de36a12930eefd4d23f5.svg#root' /></svg></span> Guides </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="https://betterstack.com/community/questions"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/questions-f8bf552415b1338196322c800af25f02649065803debc56e35284dc8817f4f62.svg#root' /></svg></span> Questions </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="https://betterstack.com/community/comparisons"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/comparisons-fb6863a2e083bb6469dc4f30df33fda11ca8ddb21e20b705fee14bbd01f921e1.svg#root' /></svg></span> Comparisons </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="https://betterstack.com/community/blog"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/blog-b6395fefdf95ecf0d620f4edb28e3684d1bf00f1f7ed3450247f3822d54413e5.svg#root' /></svg></span> Blog </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" target="_blank" href="https://newsletter.betterstack.com/"><span class='text-neutral-200'><svg class=' w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/newspaper-c03849807579231cbe11aab7bb71b8810c2ad486782add5cc373e187b9fd211a.svg#root' /></svg></span> Newsletter </a> </div> </div> </button> </form> <button aria-controls='company-menu' aria-haspopup='menu' class='p-3 group relative flex items-center'> <div class='transition group-hover:text-white'>Company</div> <span class='absolute -right-1 text-[#656A7B]'><svg class='group-hover:rotate-180 transition w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-down-ca9a5c77e9dbeb8f579d14aa09540c2e7fd1df2b870baf7bb2b697d8628d2237.svg#root' /></svg></span> <div class='hidden group-hover:block absolute z-40 top-full left-0 text-left' id='company-menu' role='menu' tabindex='-1'> <div class='rounded-lg border backdrop-blur-2xl flex flex-col gap-1 w-[190px] p-[6px] bg-[#181926]/80 border-[#1F2433]/75'> <a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="/careers"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/ship-fac80f771cb6bf9b83f75566358b7f7f55096ead16224af4a5017c66d7c95d2d.svg#root' /></svg></span> Work at Better Stack </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="/careers/engineering"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/code-962cf453e652fb895c84780aeeef1b4b86dfe3746a37745c329574151171174e.svg#root' /></svg></span> Engineering </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="/security"><span class='text-neutral-200'><svg width='20' height='20' alt='' class=' w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/shield-check-3c099ada976d7267d4d10e6a1989b201b1a2bc19e24d8d856d2267b25b355423.svg#root' /></svg></span> Security </a> </div> </div> </button> <a class='hidden lg:flex p-3 hover:text-white transition items-center' href='/enterprise'> <span>Enterprise</span> </a> </div> </div> <div class='flex items-center sm:gap-2 whitespace-nowrap -mr-3 md:mr-0'> <a class="p-2 transition hover:text-white" data-turbo="false" href="/users/sign-in">Sign in</a> <a class="px-2 h-[27px] flex items-center rounded bg-button-gradient text-white font-medium" data-turbo="false" href="/users/sign-up">Sign up</a> <button aria-label='Open menu' class='p-2 group relative md:hidden text-neutral-300' id='open-menu'> <svg class=' w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/bars-3-351934c6c1a4098059288510d0dae400e4c50af0fb9ab0861217099dae52d243.svg#root' /></svg> </button> <button aria-label='Close menu' class='hidden p-2 group relative md:hidden text-neutral-300' id='close-menu'> <svg class=' w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/x-mark-79d01b614be655fe3c9476bfc5894abf50a46176906bb008c2d4837615e51312.svg#root' /></svg> </button> </div> <div class='hidden md:hidden p-5 fixed z-40 left-0 right-0 backdrop-blur-2xl top-[52px] bg-[#181926]/80 text-[#C9D3EE]' id='mobile-menu'> <div class='js-menu-section flex flex-col gap-1' data-section='root'> <button class='p-3 group relative flex items-center' data-section='platform'> Platform <span class='text-[#656A7B]'><svg class='ml-[6px] w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-right-3f07eda912c8d37d8cf5af5275dde316fd9aa22bf0aca16e515d4bb8f25196c3.svg#root' /></svg></span> </button> <a class="p-3" href="https://betterstack.com/docs/">Documentation</a> <a class="p-3" href="/pricing">Pricing</a> <button class='p-3 group relative flex items-center' data-section='community'> Community <span class='text-[#656A7B]'><svg class='ml-[6px] w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-right-3f07eda912c8d37d8cf5af5275dde316fd9aa22bf0aca16e515d4bb8f25196c3.svg#root' /></svg></span> </button> <button class='p-3 group relative flex items-center' data-section='company'> Company <span class='text-[#656A7B]'><svg class='ml-[6px] w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-right-3f07eda912c8d37d8cf5af5275dde316fd9aa22bf0aca16e515d4bb8f25196c3.svg#root' /></svg></span> </button> <a class="p-3" href="/enterprise">Enterprise</a> </div> <div class='js-menu-section hidden' data-section='platform'> <button class='mb-2 p-3 group relative flex items-center' data-section='root'> <svg class='mr-[6px] w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-left-1fa568d125ef223858e7f0d6c6c1ea990e71ddf434f875a8a2c4bbb23fc692a6.svg#root' /></svg> Back </button> <div class='flex-1 md:px-2 py-3 flex flex-col gap-1 border-b md:border-b-0 md:border-r relative border-[#1F2433]/40'> <div class='absolute -top-7 bottom-full left-0 right-0'></div> <a class='-my-1 p-1 flex items-center gap-3 group/uptime ml-[6px]' href='/uptime'> <svg width='69' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/uptime-logo-fcc6a01850aa0409e3743c6b70051bfc042504854c76a833ef52512d92dccc16.svg#root' /></svg> <div class='border-l relative top-[1px] h-[12px] border-[#727DA1]/30'></div> <div class='text-sm text-neutral-200 flex items-center'> <span class='mr-1'>Better Stack</span> <svg class='transition-all relative top-[1px] h-4 w-0 group-hover/uptime:w-4 inline' alt='' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/arrow-right-c07cd271c9c8d131084c513571295decfe8bf410e675cdde2686c1adf90b494b.svg#root' /></svg> <svg class='transition-all relative top-[1px] h-4 w-4 group-hover/uptime:w-0 inline' alt='' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/chevron-right-ee58bdc22e1fb683dd9ffd95ba0c4df56d8a2a0904d7ddbe63b6e2b4ab82f090.svg#root' /></svg> </div> </a> <hr class='mt-2 border-t border-[#1F2433]/40'> <a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/uptime"><span class='mr-1 text-[#7C87F7]'><svg class='relative top-[-2px] left-[2px] brand-primary-text-100 w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/globe-alt-5353caa43f8b313373d83572e4ad34e7a563836c16aa6096a14a264330713862.svg#root' /></svg></span> <div> <div class='font-medium'>Uptime monitoring</div> <div class='mt-1 text-xs text-neutral-200'>Get 10 monitors, and a status page totally free.</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/incident-management"><span class='text-[#7C87F7]'><svg width='25' height='24' alt='' class='relative top-[-2px] scale-[90%]' style='--currentColor: currentColor;'><use href='/assets/v2/calendar-6357844552d3ab90ba30b8f0b220de1523ff3aeee8c314a7805eecc7c7393754.svg#root' /></svg></span> <div> <div class='font-medium'>Incident management & on-call</div> <div class='mt-1 text-xs text-neutral-200'>Get a call when your website goes down</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/status-page"><span class='mr-1 text-[#7C87F7]'><svg width='20' height='20' alt='' class='relative top-[-1px] left-[2px]' style='--currentColor: currentColor;'><use href='/assets/v2/page-e138419398f9cc3e22fdf0693bc55a06d3cc6daec37069e878be827b24d07521.svg#root' /></svg></span> <div> <div class='font-medium'>Status page</div> <div class='mt-1 text-xs text-neutral-200'>Communicate downtime & build trust</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/incident-silencing"><span class='mr-1 text-[#7C87F7]'><svg class='relative top-[-1px] left-[2px] brand-primary-text-100 w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/bell-alert-bae43eae97d5f8f065ac7cfc69ecfb8325b06acf5014e922db6f5ed2b0da780c.svg#root' /></svg></span> <div> <div class='font-medium'>Incident silencing</div> <div class='mt-1 text-xs text-neutral-200'>Reduce alert noise & prevent alert fatigue</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/slack-incident-management"><div class='mr-1 w-[18px] h-[18px] mt-[2px] text-brand-primary-100'><svg alt='' class='w-full h-full relative top-[-1px] left-[2px]' style='--currentColor: currentColor;'><use href='/assets/v2/slack-77d755b1a6198a50134d9500924a07b2a55cfb06d5d704776cddd5d419701977.svg#root' /></svg></div> <div> <div class='font-medium'>Slack-based incident management</div> <div class='mt-1 text-xs text-neutral-200'>Resolve incidents directly in Slack</div> </div> </a></div> <div class='flex-1 mt-2 md:mt-0 md:px-2 py-3 flex flex-col gap-1'> <a class='ml-1 -my-1 p-1 flex items-center gap-3 group/logtail' href='/telemetry'> <svg width='227' height='48' alt='' class='w-[95px] h-5' style='--currentColor: currentColor;'><use href='/assets/v2/telemetry-logo-9698cd9133dcc1454659c661f4632fb8d4453b2e62bd2f98a248c69a3767fb8a.svg#root' /></svg> <div class='border-l relative top-[1px] h-[12px] border-[#727DA1]/30'></div> <div class='text-sm text-neutral-200 flex items-center'> <span class='mr-1'>Better Stack</span> <svg class='transition-all relative top-[1px] h-4 w-0 group-hover/logtail:w-4 inline' alt='' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/arrow-right-c07cd271c9c8d131084c513571295decfe8bf410e675cdde2686c1adf90b494b.svg#root' /></svg> <svg class='transition-all relative top-[1px] h-4 w-4 group-hover/logtail:w-0 inline' alt='' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/chevron-right-ee58bdc22e1fb683dd9ffd95ba0c4df56d8a2a0904d7ddbe63b6e2b4ab82f090.svg#root' /></svg> </div> </a> <hr class='mt-2 border-t border-[#1F2433]/40'> <a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/telemetry"><span class='text-[#7C87F7]'><svg width='25' height='24' alt='' class='relative top-[-2px] scale-[90%]' style='--currentColor: currentColor;'><use href='/assets/v2/code-insert-b8f283aedd6b241eb85334d4566ca3fbe15a8fc15c4ecf8638bc97f7da00e854.svg#root' /></svg></span> <div> <div class='font-medium'>Log management</div> <div class='mt-1 text-xs text-neutral-200'>Collect insights across your stack</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/infrastructure-monitoring"><span class='mr-1 text-[#7C87F7]'><svg class='relative top-[-1px] left-[2px] brand-primary-text-100 w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/server-stack-d9821d67c85b098d180212edfdab2f04b882ab293f52834aa72d0fd2fbe06b0d.svg#root' /></svg></span> <div> <div class='font-medium'>Infrastructure monitoring</div> <div class='mt-1 text-xs text-neutral-200'>OpenTelemetry-native infrastructure monitoring</div> </div> </a><a class="block px-2 flex gap-2 transition py-[10px] hover:bg-[#727DA1]/15 rounded leading-[145%]" href="/dashboards"><span class='text-[#7C87F7]'><svg width='25' height='24' alt='' class='relative top-[-2px] scale-[90%]' style='--currentColor: currentColor;'><use href='/assets/v2/flipchart-2cc00e4a7089a6b436dc7686bb14f3cac3ebb97a628e5824ead4ee4b38f179b3.svg#root' /></svg></span> <div> <div class='font-medium'>Observability dashboards</div> <div class='mt-1 text-xs text-neutral-200'>Analyze metrics across your services</div> </div> </a></div> </div> <div class='js-menu-section hidden flex flex-col gap-1' data-section='community'> <button class='mb-2 p-3 group relative flex items-center' data-section='root'> <svg class='mr-[6px] w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-left-1fa568d125ef223858e7f0d6c6c1ea990e71ddf434f875a8a2c4bbb23fc692a6.svg#root' /></svg> Back </button> <a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%] md:hidden" href="https://betterstack.com/community"><span class='text-neutral-200'><svg class='mx-[2px] w-4 h-4 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/users-26c9af687d35d046de38f868bdfb06189d53f15b4a1c1593671ce07998a8ccb0.svg#root' /></svg></span> Community home </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="https://betterstack.com/community/guides"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/guides-3c7383ba1af5330b1c7df20232fb7c2df8ca63a0fad8de36a12930eefd4d23f5.svg#root' /></svg></span> Guides </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="https://betterstack.com/community/questions"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/questions-f8bf552415b1338196322c800af25f02649065803debc56e35284dc8817f4f62.svg#root' /></svg></span> Questions </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="https://betterstack.com/community/comparisons"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/comparisons-fb6863a2e083bb6469dc4f30df33fda11ca8ddb21e20b705fee14bbd01f921e1.svg#root' /></svg></span> Comparisons </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="https://betterstack.com/community/blog"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/blog-b6395fefdf95ecf0d620f4edb28e3684d1bf00f1f7ed3450247f3822d54413e5.svg#root' /></svg></span> Blog </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" target="_blank" href="https://newsletter.betterstack.com/"><span class='text-neutral-200'><svg class=' w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/newspaper-c03849807579231cbe11aab7bb71b8810c2ad486782add5cc373e187b9fd211a.svg#root' /></svg></span> Newsletter </a> </div> <div class='js-menu-section hidden pb-5 flex flex-col gap-1' data-section='company'> <button class='mb-2 p-3 group relative flex items-center' data-section='root'> <svg class='mr-[6px] w-[11px] h-[11px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/chevron-left-1fa568d125ef223858e7f0d6c6c1ea990e71ddf434f875a8a2c4bbb23fc692a6.svg#root' /></svg> Back </button> <a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="/careers"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/ship-fac80f771cb6bf9b83f75566358b7f7f55096ead16224af4a5017c66d7c95d2d.svg#root' /></svg></span> Work at Better Stack </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="/careers/engineering"><span class='text-neutral-200'><svg width='20' height='20' alt='' style='--currentColor: currentColor;'><use href='/assets/v2/code-962cf453e652fb895c84780aeeef1b4b86dfe3746a37745c329574151171174e.svg#root' /></svg></span> Engineering </a><a class="block px-2 flex items-center gap-2 transition py-[6px] hover:bg-[#727DA1]/15 rounded-[6px] leading-[145%]" href="/security"><span class='text-neutral-200'><svg width='20' height='20' alt='' class=' w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/shield-check-3c099ada976d7267d4d10e6a1989b201b1a2bc19e24d8d856d2267b25b355423.svg#root' /></svg></span> Security </a> </div> </div> </nav> </header> <header class='dark sticky top-0 z-30 flex justify-center leading-none w-full backdrop-blur-2xl bg-[#0B0C14]/80 text-[13px]'> <div class='mx-2 sm:mx-5 flex grow overflow-x-scroll no-scrollbars relative max-w-[1110px]'> <nav class='grow flex items-center border-b h-[49px] border-[#727DA1]/15'> <a class='block mr-5 ml-2 p-2 hover:text-white mt-[-2px]' href='/community/?utm_content&utm_medium=guides&utm_source=community&utm_term=log-management'> Community </a> <div class='grow flex items-stretch gap-5 md:justify-between'> <ul class='flex items-center gap-5 whitespace-nowrap'> <li class='flex relative dropdown-trigger hover:text-white'> <a class='w-full p-2 text-white rounded bg-[#98A4F714]' href='/community/guides/?utm_content&utm_medium=guides&utm_source=community&utm_term=log-management'> Guides </a> </li> <li class='flex relative dropdown-trigger hover:text-white'> <a class='w-full p-2' href='/community/questions/?utm_content&utm_medium=guides&utm_source=community&utm_term=log-management'> Questions </a> </li> <li class='flex relative dropdown-trigger hover:text-white'> <a class='w-full p-2' href='/community/comparisons/?utm_content&utm_medium=guides&utm_source=community&utm_term=log-management'> Comparisons </a> </li> <li class='flex relative dropdown-trigger hover:text-white'> <a class='w-full p-2' href='/community/blog/?utm_content&utm_medium=guides&utm_source=community&utm_term=log-management'> Blog </a> </li> </ul> <a class='flex items-center hover:text-white md:hidden' href='https://betterstack.com/docs/'>Docs</a> <div class='sticky md:absolute z-10 right-2 md:right-0 top-0 bottom-0 flex items-center gap-5 whitespace-nowrap'> <a class='hover:text-white hidden md:block' href='https://betterstack.com/docs/'>Documentation</a> <div id='docsearch-container'></div> <script src='https://cdnjs.betterstack.com/@docsearch/js@3.5.2/dist/umd/index.js'></script> <script nonce="933636584b1c4a10d880fb5e4c9d6da7"> //<![CDATA[ function loadDocsearch() { if (!window.docsearch) { setTimeout(loadDocsearch, 50); return; } window.docsearch({ container: '#docsearch-container', appId: '4N04E5JBP3', indexName: 'betterstack22', apiKey: '1acd2b32f9173069cd6467c9d186e21f', maxResultsPerGroup: 20, searchParameters: { hitsPerPage: 20, }, }); // This hack prevents scrolling after closing the modal in Safari. // https://github.com/algolia/docsearch/issues/1260 document.getElementsByClassName('DocSearch DocSearch-Button')[0]?.addEventListener('click', function (event) { document.querySelectorAll('.js-docsearch-anchor').forEach((element) => { element.parentNode.removeChild(element); }); const input = document.createElement('input') input.setAttribute('type', 'text') const div = document.createElement('div'); div.appendChild(input); div.classList.add('fixed', 'js-docsearch-anchor'); document.body.appendChild(div); }); // Without this CMD+K would open one modal per visited page with the search. // Docsearch does not support 'destroy', so we need to hack it. document.addEventListener('keydown', function (event) { if (event.key === 'k' && event.metaKey) { event.stopPropagation(); document.getElementsByClassName('DocSearch DocSearch-Button')[0]?.click(); } }); } loadDocsearch(); //]]> </script> </div> </div> </nav> </div> <div class='absolute pointer-events-none top-0 bottom-0 right-0 bg-gradient-to-l md:hidden w-28 from-[#0B0C14] via-[#0B0C14]'></div> </header> <div class='bg-white'><main> <div class='dark bg-primary-hero'> <div class='mx-auto pt-4 pb-8 px-7 max-w-[1130px]'> <a class='text-base text-[#C9D3EE]' href='/community/guides/logging/'> <svg class='inline mr-2 -mt-[2px] w-4 h-4 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/outline/arrow-left-ed700dfed9514ccfb810fa7a4d596df346b95f0b52f9f415dc3fd98fdde23853.svg#root' /></svg> Back to Logging guides </a> <div class='pt-10 md:pt-16 lg:pt-20'> <h1 class='font-helveticaDisplay font-bold text-center text-white overflow-hidden text-ellipsis mx-auto text-[36px] md:text-[48px] lg:text-[54px] leading-[120%] max-w-[640px]'> A Beginner's Guide to Log Management </h1> <div class='mt-4 flex justify-center text-base flex-wrap'> <a class="px-[10px] py-[2px] mr-2 mt-2 rounded-lg bg-white/[0.04] hover:bg-white/[0.05] border border-white/[0.05] text-white whitespace-nowrap" href="/tag/best-practices?utm_content&utm_medium=guides&utm_source=community&utm_term=log-management">Best Practices</a> <a class="px-[10px] py-[2px] mr-2 mt-2 rounded-lg bg-white/[0.04] hover:bg-white/[0.05] border border-white/[0.05] text-white whitespace-nowrap" href="/tag/logging?utm_content&utm_medium=guides&utm_source=community&utm_term=log-management">Logging</a> <a class="px-[10px] py-[2px] mr-2 mt-2 rounded-lg bg-white/[0.04] hover:bg-white/[0.05] border border-white/[0.05] text-white whitespace-nowrap" href="/tag/log-management?utm_content&utm_medium=guides&utm_source=community&utm_term=log-management">Log Management</a> </div> <div class='mt-10 md:mt-16 mt-20 text-center'> <div class='text-white'>Ayooluwa Isaiah</div> <div class='mt-1 uppercase whitespace-nowrap text-xs font-medium text-neutral-300 tracking-[1.56px]'> Updated on February 16, 2024 </div> </div> </div> </div> </div> <div class='container mx-auto py-8 lg:py-16 max-w-[1130px]'> <div class='lg:flex' data-controller='toc'> <div class='grow xl:flex'> <div class='sticky hidden xl:block mr-12 shrink-0 w-[190px]' data-toc-target='toc'> <div class='text-base text-neutral-300 sticky scroll-smooth overflow-y-auto pretty-scrollbars max-h-screen top-[100px] pb-40'> <h6 class='text-neutral-800 font-bold'>Contents</h6> <div class='table-of-contents flat'> <ul> <li> <a href="#what-is-log-management">What is log management?</a> </li> <li> <a href="#why-is-log-management-important">Why is log management important?</a> </li> <li> <a href="#what-is-the-log-management-process">What is the log management process?</a> </li> <li> <a href="#log-management-challenges">Log management challenges</a> </li> <li> <a href="#choosing-the-right-log-management-solution">Choosing the right log management solution</a> </li> <li> <a href="#final-thoughts-and-next-steps">Final thoughts and next steps</a> </li> </ul> </div> </div> </div> <div class='grow shrink-0 prose max-w-[616px]' data-controller='body' data-toc-target='content'> <p>In the realm of observability, the words of Arthur Conan Doyle's Sherlock Holmes <a rel="" target="_blank" class="" href="https://www.goodreads.com/quotes/205730-you-see-but-you-do-not-observe">resonate deeply<span class="whitespace-nowrap"><svg class='relative -top-[1px] ml-1 w-4 h-4 inline' style='--currentColor: currentColor;'><use href='https://betterstack.com/assets/icons/heroicons_v2/mini/arrow-top-right-on-square-d4a4b2dfe559997065a0de05c441ef56d661be449bf96d9ce30eb4e0af2516cf.svg#root' /></svg></span></a>: "You see, but you do not observe". This insightful remark aptly captures a prevalent challenge in managing log data.</p><p>IT professionals often find themselves inundated with data — seeing an overwhelming amount of information but not truly observing the critical insights hidden within.</p><p>This article discusses how effective log management is not just about collecting and centralizing data, but also about about discerning the story it tells, much like a detective piecing together clues to solve a mystery.</p><p><div> <a class='not-prose my-8 rounded-lg px-3 md:px-5 text-13 flex justify-between items-center gap-4 py-[10px] bg-[#05060D] !no-underline' href='/telemetry?utm_content=upsell&utm_medium=guides&utm_source=community&utm_term=log-management'> <div class='flex items-center gap-3 min-w-0'> <svg width='18' height='14' class='hidden lg:block text-neutral-300 shrink-0' style='--currentColor: currentColor;'><use href='/assets/v2/logo-mark-4dd4f78c6635f798530e82d0043efcebe5ca4787d40dcd846ca5cfe6bf7d0442.svg#root' /></svg> <p class='text-white whitespace-nowrap truncate min-w-0 tracking-tighter'> Centralize & visualize your logs. Query everything with SQL. </p> </div> <button class='block px-3 py-2 bg-neutral-700 rounded font-medium text-white leading-none whitespace-nowrap'> Explore more </button> </a> </div> </p> <h2 id="what-is-log-management">What is log management?</h2> <p>Log management refers to the practices and tools aimed at effectively managing the extensive amounts of log data produced by diverse applications and resources within an IT environment.</p><p>It is about efficiently collecting, aggregating, storing, analyzing, and eventually discarding log data once it has exceed its useful life. Its fundamental objective is to facilitate easy observation and interpretation of log data across an entire infrastructure.</p><p>By centralizing log data, the process of pinpointing and troubleshooting system issues becomes more streamlined. This eliminates the need for manual examination of separate log files, thereby greatly enhancing efficiency in issue detection and resolution.</p> <h2 id="why-is-log-management-important">Why is log management important?</h2> <p>Logs are not just records; they are a goldmine of information that, when properly managed, can offer immense value in various aspects of IT operations such as the following:</p> <ul> <li><p><strong>Troubleshooting</strong>: Logs are often the first place to look when something goes wrong. They provide the information needed to trace back and understand the root causes of issues.</p></li> <li><p><strong>Alerting</strong>: They enable the detection of anomalous or unexpected behavior in systems which you can use to trigger alerts that prompt timely interventions.</p></li> <li><p><strong>System analysis</strong>: When log data is centralized, you can gain insights into how your systems are performing and interacting, which is necessary for both operational efficiency and strategic planning.</p></li> <li><p><strong>Prevention of recurrence</strong>: Once a problem is identified and resolved, logs can help in understanding the issue in-depth, aiding in the development of strategies to prevent similar issues from happening again.</p></li> </ul> <p>Neglecting proper log management leads to missing out on all the benefits that logging is intended to provide.</p><p>Unmanaged, your logs will remain a scattered collection of data, rendering them practically useless for analysis, correlation, or strategic decision-making.</p><p>If you're stuck manually combing through various log files to tackle production issues, you're in for a slow, frustrating, error-riddled, and expensive process that doesn't scale up.</p><p>This is where log management comes in.</p><p>It allows you to not just view all your log data in a centralized location but also to analyze and understand them in context, unlocking their true potential.</p><p>With a proper log management system, what seems like an endless stream of data now becomes a powerful tool for observing your environment and enhancing system reliability, security, and performance.</p><p>Sold? Next, we'll look at the log management process and what it entails.</p> <h2 id="what-is-the-log-management-process">What is the log management process?</h2> <p>A typical log management process is characterized by a complex pipeline that integrates various crucial aspects. This is vital for transforming raw log data into valuable, actionable insights.</p><p>To summarize, the design of an effective log management system hinges on the thoughtful consideration and integration of several key elements:</p> <ol> <li>Collecting and centralizing the logs in a log management tool, then securing access to them.</li> <li>Analysing the logs, continuous monitoring, and setting up alert mechanisms based on specific log patterns or anomalies.</li> <li>Disposing and archiving logs to optimize for cost, performance, and regulatory compliance.</li> </ol> <p>Next, let's dive into the log management process in greater detail.</p><p><div> <a class='not-prose block my-8 p-9 rounded-lg text-13 bg-logs-ad md:h-[254px] !no-underline' href='/telemetry?utm_content=upsell&utm_medium=guides&utm_source=community&utm_term=log-management'> <p class='inline-block font-bold ad-title-text text-transparent text-app-display-large'> The fastest log <br> search on the planet </p> <p class='mt-2 max-w-[253px] text-[#C9D3EE]'>Better Stack lets you see inside any stack, debug any issue, and resolve any incident.</p> <button class='mt-5 inline-block px-3 py-2 bg-neutral-700 rounded font-medium text-white bg-deprecated-primary-100 border border-deprecated-primary-200 leading-none whitespace-nowrap'> Explore more </button> </a> </div> </p> <h3 id="1-log-instrumentation">1. Log instrumentation</h3> <p>The foundational step in any log management process is the generation of logs. This involves instrumenting your applications with logging statements using a robust <a rel="" target="" class="" href="/community/guides/logging/logging-framework/">logging framework</a>, and also ensuring that the various tools, services, and dependencies in your environment are also writing useful logs that adequately capture their various activities.</p><p>In this early stage, logs are typically stored in local files, which can be readily accessed and examined using command-line tools like <code class="prettyprint">tail</code>, <code class="prettyprint">grep</code>, <code class="prettyprint">sed</code>, <code class="prettyprint">jq</code>, and others. Storing logs locally provides quick, though basic, access for initial review or troubleshooting purposes.</p><p>A critical concern at this stage is focusing on generating logs that are <a rel="" target="" class="" href="/community/guides/logging/log-formatting/">well-formatted</a> preferably in a structured format like JSON.</p><p>Paying attention to log structure and formatting is more than a mere technical requirement; it lays a solid foundation for an efficient and effective log management strategy.</p><p><strong>Learn more</strong>: <a rel="" target="" class="" href="/community/guides/logging/logging-best-practices/">Logging Best Practices</a></p> <h3 id="2-aggregating-and-centralizing-logs">2. Aggregating and centralizing logs</h3> <p>Once your applications and dependencies are generating well-structured logs, the next step is to collect these logs from diverse sources—including web servers, cloud environments, container systems, and network devices—and centralize them in one place for unified access and analysis.</p><p>This phase is often facilitated by a logging pipeline, which encompasses several key functions:</p> <ul> <li><p><strong>Collection</strong>: <a rel="" target="" class="" href="/community/guides/logging/log-shippers-explained/">Log shippers</a> like Fluentd, Filebeat, or Vector are designed to gather logs from diverse sources in your environment, including web servers, cloud services, containers, and network devices.</p></li> <li><p><strong>Buffering</strong>: To prevent overwhelming the system, logs are often temporarily held in a queue, like <a rel="" target="_blank" class="" href="https://kafka.apache.org/">Apache Kafka<span class="whitespace-nowrap"><svg class='relative -top-[1px] ml-1 w-4 h-4 inline' style='--currentColor: currentColor;'><use href='https://betterstack.com/assets/icons/heroicons_v2/mini/arrow-top-right-on-square-d4a4b2dfe559997065a0de05c441ef56d661be449bf96d9ce30eb4e0af2516cf.svg#root' /></svg></span></a>. This buffering ensures a smooth, controlled flow of data into the pipeline.</p></li> <li><p><strong>Processing</strong>: At this stage, logs undergo filtering, transformation, or enrichment to prepare them for analysis. This process ensures that the logs are in the most suitable format for their intended use. Tools such as Logstash or Vector are commonly used for these tasks.</p></li> <li><p><strong>Centralization</strong>: Finally, the processed logs are consolidated in a centralized log management system. Options vary from self-hosted solutions like Elasticsearch to fully managed services such as <a rel="" target="" class="" href="https://betterstack.com/logs">Better Stack</a>, catering to different needs and scales of operation.</p></li> </ul> <p><strong>Learn more</strong>: <a rel="" target="" class="" href="/community/guides/logging/log-aggregation/">Getting Started with Log Aggregation</a></p> <h3 id="3-securing-access-to-logs">3. Securing access to logs</h3> <p>While logs typically shouldn't hold overly sensitive data, they often contain information that needs to be safeguarded from unauthorized access. As such, implementing robust security measures for your log data is crucial.</p><p>These measures can include encrypting logs to protect their confidentiality, applying data masking or redaction techniques to obscure sensitive details, and employing hashing for data integrity.</p><p>It's also vital to restrict access to certain categories of logs based on user roles and responsibilities, coupled with regular reviews of these access privileges.</p><p>Consider implementing an audit logging system that records every instance of log access, providing a clear trail of who accessed what logs and when. This is a key aspect of ensuring accountability and tracking potential unauthorized access.</p><p>Staying updated with the latest versions of your log management tools is another critical security practice. These updates often include essential security patches that protect against vulnerabilities. The well-known <a rel="" target="_blank" class="" href="https://builtin.com/cybersecurity/log4j-vulerability-explained">Log4j vulnerability<span class="whitespace-nowrap"><svg class='relative -top-[1px] ml-1 w-4 h-4 inline' style='--currentColor: currentColor;'><use href='https://betterstack.com/assets/icons/heroicons_v2/mini/arrow-top-right-on-square-d4a4b2dfe559997065a0de05c441ef56d661be449bf96d9ce30eb4e0af2516cf.svg#root' /></svg></span></a> serves as a stark reminder that any component in the logging process, if left unsecured, can become an entry point for malicious actors to compromise your systems.</p><p><strong>Learn more</strong>: <a rel="" target="" class="" href="/community/guides/logging/sensitive-data/">Best Logging Practices to Keep Sensitive Data Out</a></p> <h3 id="4-real-time-log-streaming">4. Real-time log streaming</h3> <p><div data-controller='lightbox' class='relative cursor-pointer'> <figure data-action='click->lightbox#open' data-lightbox-target='picture'> <picture> <source media="(max-width: 800px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/7f3b8c76-d947-4981-bf9f-644e10b6c000/md1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/7f3b8c76-d947-4981-bf9f-644e10b6c000/md2x 2x" width=500 height=298 /> <source media="(min-width: 801px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/7f3b8c76-d947-4981-bf9f-644e10b6c000/lg1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/7f3b8c76-d947-4981-bf9f-644e10b6c000/lg2x 2x" width=650 height=388 /> <img alt="Screenshot 2023-06-13 at 13-54-57 Live tail Better Stack.png" width="2840" height="1696" class="w-full lazyload" data-src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/7f3b8c76-d947-4981-bf9f-644e10b6c000/orig" src="" /> </picture> </figure> <figure class='hidden lightbox' data-lightbox-target='container'> <img alt="Screenshot 2023-06-13 at 13-54-57 Live tail Better Stack.png" width="2840" height="1696" loading="lazy" data-action="click->lightbox#close" data-lightbox-target="img" src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/7f3b8c76-d947-4981-bf9f-644e10b6c000/orig" /> </figure> </div> </p><p>Real-time log streaming, also known as live tailing, enables you to observe log entries as they are generated and recorded across all your systems, all from a single vantage point.</p><p>This approach offers the ability to filter and highlight specific information within the continuous flow of incoming logs, making it exceptionally efficient to observe crucial system activity (such as deployments).</p><p>It stands in stark contrast to traditional monitoring techniques, which typically involved SSH-ing into multiple servers and using commands like <code class="prettyprint">tail -f</code> on individual log files.</p><p><div data-controller='lightbox' class='relative cursor-pointer'> <figure data-action='click->lightbox#open' data-lightbox-target='picture'> <picture> <source media="(max-width: 800px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/83200e46-31c7-4019-59a5-0ed508924f00/md1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/83200e46-31c7-4019-59a5-0ed508924f00/md2x 2x" width=500 height=281 /> <source media="(min-width: 801px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/83200e46-31c7-4019-59a5-0ed508924f00/lg1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/83200e46-31c7-4019-59a5-0ed508924f00/lg2x 2x" width=650 height=365 /> <img alt="Screenshot from 2023-11-26 18-41-36.png" width="2526" height="1422" class="w-full lazyload" data-src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/83200e46-31c7-4019-59a5-0ed508924f00/orig" src="" /> </picture> </figure> <figure class='hidden lightbox' data-lightbox-target='container'> <img alt="Screenshot from 2023-11-26 18-41-36.png" width="2526" height="1422" loading="lazy" data-action="click->lightbox#close" data-lightbox-target="img" src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/83200e46-31c7-4019-59a5-0ed508924f00/orig" /> </figure> </div> </p><p>Such practices are not only time-consuming but also limited in scope and effectiveness for any sufficiently complex environment.</p><p>With the advent of log centralization and streaming, it's much easier to get a holistic view of your system's activities and respond to events in real time.</p> <h3 id="5-searching-and-analysis">5. Searching and analysis</h3> <p>The moment your logs start flowing into the log management system, a new phase unfolds—one of discovery and understanding.</p><p>At its core, log management is about helping you excavate through thick layers of raw log data to uncover details that help you troubleshoot a specific problem or see broader insights that reshape your understanding of your environment.</p><p>This invites you to harness the platform's search capabilities to sift through the data mosaic and distill the information that matters to you most. Some everyday use cases for searching your logs include:</p> <ul> <li>Filtering log levels, such as <code class="prettyprint">WARNING</code> or <code class="prettyprint">ERROR</code> to quickly address potential issues and failures, or <code class="prettyprint">DEBUG</code> to isolate logs that contain debugging information.</li> <li>Locating events that occurred within a defined time range to aid in pinpointing when an issue started or how it progressed.</li> <li>Searching for logs related to specific user activities to monitor usage patterns or investigate security incidents.</li> </ul> <p>For instance, to filter logs for a specific route in your service with an error status, over the past thirty minutes, create a custom query like <code class="prettyprint">level=error message.request.url:"search"</code> and set the time range to the Past 30 minutes:</p><p><div data-controller='lightbox' class='relative cursor-pointer'> <figure data-action='click->lightbox#open' data-lightbox-target='picture'> <picture> <source media="(max-width: 800px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6c26589a-d023-43e9-b135-0d90dac1d400/md1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6c26589a-d023-43e9-b135-0d90dac1d400/md2x 2x" width=500 height=145 /> <source media="(min-width: 801px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6c26589a-d023-43e9-b135-0d90dac1d400/lg1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6c26589a-d023-43e9-b135-0d90dac1d400/lg2x 2x" width=650 height=189 /> <img alt="level-error-message-request-url-search-Better-Stack (1).png" width="1526" height="445" class="w-full lazyload" data-src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6c26589a-d023-43e9-b135-0d90dac1d400/orig" src="" /> </picture> </figure> <figure class='hidden lightbox' data-lightbox-target='container'> <img alt="level-error-message-request-url-search-Better-Stack (1).png" width="1526" height="445" loading="lazy" data-action="click->lightbox#close" data-lightbox-target="img" src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6c26589a-d023-43e9-b135-0d90dac1d400/orig" /> </figure> </div> </p><p>If you frequently conduct a particular search, consider saving it as a preset for easy and quick access for you and your team.</p><p>Beyond simple searches, you can also correlate your application's log entries and their dependencies to construct a more holistic view of events. This will help you understand complex system interactions and identify the underlying causes of observed behaviors or issues.</p> <h3 id="6-monitoring-and-alerting">6. Monitoring and alerting</h3> <p>Log management goes beyond manually reviewing and searching centralized logs. When you set up continuous monitoring and alerting for real-time event awareness, it transforms from a passive data store to an active, vigilant overseer of your system's health and security.</p><p>Structured logs are a game-changer in this context. Their organized format simplifies the extraction of critical fields for monitoring, enabling the swift identification of significant events, abnormal behaviors, or security incidents.</p><p>Consider, for example, the potential of crafting specific rules within your log management system:</p> <h4 id="1-event-based-alert-triggers">1. Event-based alert triggers</h4> <p>Here, you create rules for alert notifications based on specific occurrences in your application. This could be the logging of a specific message, the completion of a notable business process, or the absence of expected logs. For instance, if a daily database backup is supposed to happen and its success log is missing, an alert can be triggered to address the issue promptly.</p> <h4 id="2-rate-based-alert-triggers">2. Rate-based alert triggers</h4> <p><div data-controller='lightbox' class='relative cursor-pointer'> <figure data-action='click->lightbox#open' data-lightbox-target='picture'> <picture> <source media="(max-width: 800px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/4abc441a-e43c-4b2e-6312-92c8a0210200/md1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/4abc441a-e43c-4b2e-6312-92c8a0210200/md2x 2x" width=500 height=397 /> <source media="(min-width: 801px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/4abc441a-e43c-4b2e-6312-92c8a0210200/lg1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/4abc441a-e43c-4b2e-6312-92c8a0210200/lg2x 2x" width=650 height=516 /> <img alt="error-alert.png" width="1334" height="1060" class="w-full lazyload" data-src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/4abc441a-e43c-4b2e-6312-92c8a0210200/orig" src="" /> </picture> </figure> <figure class='hidden lightbox' data-lightbox-target='container'> <img alt="error-alert.png" width="1334" height="1060" loading="lazy" data-action="click->lightbox#close" data-lightbox-target="img" src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/4abc441a-e43c-4b2e-6312-92c8a0210200/orig" /> </figure> </div> </p><p>Observing one or two 500 server errors may be an indication of an intermittent failure, but a flurry of such errors could indicate a more severe problem.</p><p>Setting up rate-based alerts helps in identifying these trends without overwhelming you with notifications for every minor error, which can lead to alert fatigue.</p><p>Conversely, alerts can also be set for when the occurrence of certain events falls below an expected rate, signaling potential issues.</p> <h3 id="7-reporting-and-dashboards">7. Reporting and dashboards</h3> <p>Another vital component of log management is its capability to provide visual representations of your environment's performance and to identify trends in system behavior using the log data as a source.</p><p>Dashboards play a crucial role in this context. They simplify the tracking of key performance indicators (KPIs), presenting them in a format that is not only easy to understand but also shareable among stakeholders. These visual tools transform complex log data into intuitive, graphical representations, making it easier for teams to interpret and make informed decisions.</p><p>Such dashboards and reports can be customized to highlight the most relevant information, offering a real-time overview of system health, usage patterns, and potential bottlenecks. This enhanced visualization aids in quick identification of issues, efficient resource allocation, and strategic planning, thereby significantly improving the overall management and oversight of IT infrastructure.</p> <article class='callout flex py-[13px] pl-4 pr-5 my-8 rounded-lg border text-brand-primary-200 marker:text-brand-primary-200 border-[#BECCFB]/80 bg-brand-primary-100/10'> <div class='shrink-0 not-prose mr-3 -mt-1'><svg class=' text-brand-primary-100 w-4 h-4 inline' style='--currentColor: currentColor;'><use href='https://betterstack.com/assets/icons/heroicons_v2/mini/information-circle-2371734370481cdc89067ae4b4a66a6c5bc5d9d981bf75702d3378795cde439a.svg#root' /></svg></div> <div class='content'><h2 id="side-note-get-a-logs-dashboard">Side note: Get a logs dashboard</h2> <p>Save hours of sifting through application logs. Centralize with <a rel="" target="" class="" href="https://betterstack.com/logs?utm_content=callout&utm_medium=guides&utm_source=community&utm_term=log-management">Better Stack</a> and start visualizing your log data in minutes.</p><p>See the <a rel="" target="" class="" href="https://telemetry.betterstack.com/dashboards/iP9roB?utm_content=callout&utm_medium=guides&utm_source=community&utm_term=log-management">demo dashboard live</a>.</p> <iframe src="https://telemetry.betterstack.com/dashboards/iP9roB" width="100%" height="400"></iframe> </div> </article> <h3 id="8-log-retention-and-archiving">8. Log retention and archiving</h3> <p>Log retention is the process of determining how long logs should be stored. This decision is crucial, especially since many log management systems base their pricing on storage duration. For self-hosted systems, regularly purging or archiving older logs could be necessary for maintaining scalability and efficiency.</p><p>Legal and regulatory mandates, internal policies, and the specific utility of the logs typically guide the retention period Often, different types of logs have varied retention policies. For instance, <a rel="" target="_blank" class="" href="https://www.buffalo.edu/content/dam/www/ubit/it-policies/RetentionGuidelinesLogFiles.pdf">at the University of Buffalo<span class="whitespace-nowrap"><svg class='relative -top-[1px] ml-1 w-4 h-4 inline' style='--currentColor: currentColor;'><use href='https://betterstack.com/assets/icons/heroicons_v2/mini/arrow-top-right-on-square-d4a4b2dfe559997065a0de05c441ef56d661be449bf96d9ce30eb4e0af2516cf.svg#root' /></svg></span></a>, the standard retention period is 30 days, but logs related to IDM audits or UNIX auth/login activities are kept for six months.</p><p>When the predefined retention period ends, there are two primary options for handling the expired logs:</p> <ol> <li><p><strong>Purging</strong>: This involves permanently deleting the logs. It's crucial to be certain that these logs will no longer be needed before choosing this option, as it eliminates any possibility of future retrieval or analysis.</p></li> <li><p><strong>Archiving</strong>: This approach transfers expired logs to a less expensive, cold storage medium (such as Amazon S3). While this still incurs some cost, it's significantly lower than keeping the logs active in the primary management system. Archived logs can be retrieved and re-ingested into the system if needed for further analysis.</p></li> </ol> <p>Both strategies have their place in a comprehensive log management plan, allowing for an effective balance between cost, compliance, and the practical need for historical data analysis.</p> <h2 id="log-management-challenges">Log management challenges</h2> <p>The rapid increase in log data volume, fueled by the adoption of <a rel="" target="" class="" href="/community/guides/logging/logging-microservices/">microservices</a>, cloud computing, and containerization has significantly complicated the log management process for modern application environments.</p><p>To be effective in the current landscape, your log management pipeline must effectively address these fundamental challenges:</p> <ul> <li><p><strong>High volume of log data</strong>: Modern applications generate a substantial and ever-increasing amount of log data. Collecting, storing, and querying this data is not only challenging but also often quite costly.</p></li> <li><p><strong>Managing self-hosted systems</strong>: When opting for a self-hosted log management system, dedicated engineering resources are often necessary to manage and scale the environment. This commitment needs careful consideration before deciding on a self-hosted solution.</p></li> <li><p><strong>Scalability and performance issues</strong>: Some log management tools may struggle to scale effectively with the growing volume of data, leading to slow data ingestion and delaying the analysis and response to the critical events captured in the logs. Carefully consider the performance characteristics of each tool you're adopting to ensure that it meets your current requirements with room to scale further.</p></li> <li><p><strong>Lack of standardization</strong>: The absence of logging standards limits the ability to correlate data effectively across different systems and formats.</p></li> <li><p><strong>Data security and privacy concerns</strong>: Preventing unauthorized access to log data at rest and in transit is a major challenge, especially when logs contain sensitive information. Ensure to select logging tools that can protect your data with encryption and access control.</p></li> <li><p><strong>Preventing alert fatigue</strong>: Minimizing false positives and alert fatigue, while still ensuring critical issues are promptly addressed, is another challenging aspect of log management.</p></li> <li><p><strong>Long-term data management</strong>: Managing the lifecycle of log data from creation to archival or deletion, especially in environments where data accumulates rapidly, requires careful planning and resource allocation.</p></li> </ul> <p>While it's beyond the scope of this article to delve into each of these challenges in detail, you need to keep them in mind when designing and implementing a log management pipeline for your business.</p> <h2 id="choosing-the-right-log-management-solution">Choosing the right log management solution</h2> <p>An important aspect of formulating your log management strategy is choosing an appropriate log management tool. You'll likely decide between going for a self-hosted tool, or using a fully-managed service.</p><p><div data-controller='lightbox' class='relative cursor-pointer'> <figure data-action='click->lightbox#open' data-lightbox-target='picture'> <picture> <source media="(max-width: 800px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6825141d-060c-4b20-a376-ef458ca65a00/md1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6825141d-060c-4b20-a376-ef458ca65a00/md2x 2x" width=500 height=302 /> <source media="(min-width: 801px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6825141d-060c-4b20-a376-ef458ca65a00/lg1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6825141d-060c-4b20-a376-ef458ca65a00/lg2x 2x" width=650 height=393 /> <img alt="2019-09-30_12-08.png" width="1311" height="794" class="w-full lazyload" data-src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6825141d-060c-4b20-a376-ef458ca65a00/orig" src="" /> </picture> </figure> <figure class='hidden lightbox' data-lightbox-target='container'> <img alt="2019-09-30_12-08.png" width="1311" height="794" loading="lazy" data-action="click->lightbox#close" data-lightbox-target="img" src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/6825141d-060c-4b20-a376-ef458ca65a00/orig" /> </figure> </div> </p><p>A self-hosted solution might be more suitable if you require extensive customization or if you have stringent data security and privacy needs that necessitate storing all your data on-premise.</p><p>These systems typically offer more control over data storage and processing but demand a higher level of resource investment in terms of hardware, software, and skilled personnel for maintenance and management.</p><p>On the other hand, a fully managed service is ideal if you're seeking ease of use, scalability, and reduced operational overhead. Such services typically provide robust out-of-the-box features, regular updates, and seamless scalability to accommodate growing data volumes.</p><p>The key is to balance your needs with the capabilities and limitations of each type of solution to ensure that your log management strategy is effective and sustainable.</p><p><div data-controller='lightbox' class='relative cursor-pointer'> <figure data-action='click->lightbox#open' data-lightbox-target='picture'> <picture> <source media="(max-width: 800px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/112121a1-138f-48d5-b70e-ee076799c500/md1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/112121a1-138f-48d5-b70e-ee076799c500/md2x 2x" width=500 height=298 /> <source media="(min-width: 801px)" data-srcset="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/112121a1-138f-48d5-b70e-ee076799c500/lg1x 1x, https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/112121a1-138f-48d5-b70e-ee076799c500/lg2x 2x" width=650 height=388 /> <img alt="Screenshot 2023-06-13 at 13-54-57 Live tail Better Stack.png" width="2840" height="1696" class="w-full lazyload" data-src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/112121a1-138f-48d5-b70e-ee076799c500/orig" src="" /> </picture> </figure> <figure class='hidden lightbox' data-lightbox-target='container'> <img alt="Screenshot 2023-06-13 at 13-54-57 Live tail Better Stack.png" width="2840" height="1696" loading="lazy" data-action="click->lightbox#close" data-lightbox-target="img" src="https://imagedelivery.net/xZXo0QFi-1_4Zimer-T0XQ/112121a1-138f-48d5-b70e-ee076799c500/orig" /> </figure> </div> </p><p><a rel="" target="" class="" href="https://betterstack.com/logs">Better Stack</a> provides a robust log and incident management solution that goes beyond centralized log storage. It includes advanced search functionality, monitoring, and alerting features designed to help you swiftly identify and rectify issues in real-time.</p><p><a rel="" target="" class="" href="https://telemetry.betterstack.com/users/sign-up">Sign up for a free account</a>, and see how easy log management can be.</p><p><strong>Learn more</strong>: <a rel="" target="" class="" href="/community/comparisons/log-management-and-aggregation-tools/">Top Log Management and Aggregation tools</a></p> <h2 id="final-thoughts-and-next-steps">Final thoughts and next steps</h2> <p>It's clear that implementing a comprehensive log management strategy in modern software environments demands careful research and planning.</p><p>While it's certainly feasible, success hinges on careful strategizing and making informed choices.</p><p>I hope the tips in this article have helped steer you in the right direction. For further exploration, please see our detailed <a rel="" target="" class="" href="/community/guides/logging/">logging guides</a>.</p><p>Got any further questions or comments on log management? Write me on <a rel="" target="_blank" class="" href="https://twitter.com/ayisaiah">X (Twitter)<span class="whitespace-nowrap"><svg class='relative -top-[1px] ml-1 w-4 h-4 inline' style='--currentColor: currentColor;'><use href='https://betterstack.com/assets/icons/heroicons_v2/mini/arrow-top-right-on-square-d4a4b2dfe559997065a0de05c441ef56d661be449bf96d9ce30eb4e0af2516cf.svg#root' /></svg></span></a>.</p><p>Thanks for reading!</p> <div class='docsearch-ignore'> <a class='block w-0 h-0' id='author-card'></a> <div class='border border-neutral-50 shadow-lg rounded-xl text-base text-neutral-600 flex flex-col px-9 py-6 gap-6 mt-12'> <div class='flex flex-wrap gap-3'> <div><img width="64" height="64" alt="Author's avatar" class="!rounded-none m-0 lazyload" data-src="/assets/articles/authors/ayooluwa-isaiah-f240882dd153c62ad0f7f0a6dd33fe642a0fabca635395a7e6c1cce19f9cf42b.png" src="" /></div> <div class='flex flex-col justify-end mb-1'> <div class='text-neutral-400'>Article by</div> <div class='text-neutral-800 font-bold text-xl'>Ayooluwa Isaiah</div> </div> <div class='flex grow justify-end items-end content-end gap-3 mb-1'> <a class='p-1 hover:bg-neutral-50 rounded' href='https://github.com/ayoisaiah' rel='nofollow noopener noreferrer' target='_blank'> <svg width='16' height='16' alt='GitHub' class='!rounded-none m-0' style='--currentColor: currentColor;'><use href='/assets/articles/icons/github-0ecf36200de79e46cda890ce5e4de0b0be5ed51709bb31889155b809212d2f40.svg#root' /></svg> </a> <a class='p-1 hover:bg-neutral-50 rounded' href='https://freshman.tech' rel='nofollow noopener noreferrer' target='_blank'> <svg width='16' height='16' alt='Website' class='!rounded-none m-0' style='--currentColor: currentColor;'><use href='/assets/articles/icons/globe-923884e022b647ad49be9bbd2380e513173787bc8c280e3fa9876b2ba3fdb8a8.svg#root' /></svg> </a> </div> </div> <div class='text-neutral-400 whitespace-pre-wrap'>Ayo is a technical content manager at Better Stack. His passion is simplifying and communicating complex technical ideas effectively. His work was featured on several esteemed publications including LWN.net, Digital Ocean, and CSS-Tricks. When he's not writing or coding, he loves to travel, bike, and play tennis.</div> </div> <iframe class='mt-16 rounded-xl' frameborder='0' height='320' scrolling='no' src='https://betterstack.substack.com/embed' style='border:1px solid #EEE; background:white;' width='100%'></iframe> <div class='mt-11 text-center'> <div class='text-neutral-300 mt-6'> Got an article suggestion? <a class="!underline !text-neutral-300" href="mailto:hello@betterstack.com?subject=Suggestion%20for%20A%20Beginner%27s%20Guide%20to%20Log%20Management&body=">Let us know</a> </div> <div class='flex justify-center items-center space-x-3 mt-4'> <a href='https://twitter.com/share?ref_src=twsrc%5Etfw&url=https://betterstack.com/community/guides/logging/log-management/&text=A+Beginner%27s+Guide+to+Log+Management+%7C+Better+Stack+Community&via=betterstackhq' rel='nofollow noopener' target='_blank'> <svg width='16' height='16' alt='Share on Twitter' class='!rounded-none m-0' style='--currentColor: currentColor;'><use href='/assets/articles/icons/twitter-0a71c82dff1d94a2c2cec482547d6393d7341e4f4be980ed508136a75b3d1527.svg#root' /></svg> </a> <a href='https://www.facebook.com/sharer/sharer.php?u=https://betterstack.com/community/guides/logging/log-management/' rel='nofollow noopener' target='_blank'> <svg width='16' height='16' alt='Share on Facebook' class='!rounded-none m-0' style='--currentColor: currentColor;'><use href='/assets/articles/icons/facebook-6ffe06602047bc3abd84874b8b66c4f962ff5e90b8974b83782cbc1c37b32c44.svg#root' /></svg> </a> <a href='mailto:?subject=A%20Beginner%27s%20Guide%20to%20Log%20Management&body=https%3A%2F%2Fbetterstack.com%2Fcommunity%2Fguides%2Flogging%2Flog-management%2F'> <svg width='16' height='16' alt='Share via e-mail' class='!rounded-none m-0' style='--currentColor: currentColor;'><use href='/assets/articles/icons/mail-023765f22acbe30ad587791edbf15dc0ac019d9617046176376561282b997023.svg#root' /></svg> </a> </div> </div> <div class='mt-20 text-center heading-h5'>Next article</div> <a class='mt-5 bg-neutral-40 rounded-lg flex hover:!no-underline' href='/community/guides/logging/log-aggregation/'> <div class='p-5 grow'> <div class='text-xl font-bold text-neutral-800'>What is Log Aggregation? Getting Started and Best Practices</div> <div class='mt-2 text-neutral-300'>Log aggregation is a key aspect of log management that involves consolidating log data from multiple sources and centralizing them in one place for easy searching and analysis</div> </div> <div class='p-5 flex items-center'>→</div> </a> <div class='mt-24 flex flex-col items-center'> <a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' rel='nofollow noopener' target='_blank'> <img alt="Licensed under CC-BY-NC-SA" class="m-0 lazyload" width="89" height="31" data-src="/assets/articles/cc-by-nc-sa-1fa5a2f7978211f24b8230a7e79097dd1f8a36be35e813693c49348cf1689f42.png" src="" /> </a> <p class='mt-5 text-center text-neutral-300 max-w-[365px]'>This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.</p> </div> </div> </div> </div> <div class='hidden lg:block ml-12 xl:-mr-8 shrink-0 w-[205px]'> <ol class='-mt-2 mb-7 text-base overflow-y-auto pb-24'> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 text-neutral-800 open py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Explainers</a> </div> <ol class='mb-4' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a aria-current='page' class='grow py-2 text-deprecated-primary-700' href='/community/guides/logging/log-management/'>What is Log Management?</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/log-aggregation/'>What is Log Aggregation?</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/log-visualization/'>What is Log Visualization?</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/log-monitoring/'>What is Log Monitoring?</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/logging-framework/'>How to Choose a Logging Framework</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/logfmt/'>Introduction to Logfmt</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/json-logging/'>Introduction to JSON Logging</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/structured-logging/'>What is Structured Logging?</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/log-levels-explained/'>Understanding Log Levels</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/change-log-levels-dynamically/'>Changing Log Levels Dynamically</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/logging-microservices/'>Logging in Microservices</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Best Practices</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/logging-best-practices/'>12 Logging Best Practices</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/log-formatting/'>Log Formatting Best Practices</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/sensitive-data/'>Keeping Sensitive Data From Logs</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/log-sampling/'>Log Sampling Explained</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/reduce-logging-costs/'>Reducing Logging Costs</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Linux</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-view-and-configure-linux-logs-on-ubuntu-20-04/'>Administering System Logs on Linux</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-manage-log-files-with-logrotate-on-ubuntu-20-04/'>Rotating Logs with Logrotate</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-control-journald-with-journalctl/'>Journalctl Log Management</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-view-and-configure-apache-access-and-error-logs/'>Logging in Apache</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-view-and-configure-nginx-access-and-error-logs/'>Nginx Logging</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/monitoring-linux-auth-logs/'>Monitoring Linux Authentication Logs</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/caddy-logging/'>Logging in Caddy</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Node.js</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-install-setup-and-use-pino-to-log-node-js-applications/'>Logging with Pino</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-install-setup-and-use-winston-and-morgan-to-log-node-js-applications/'>Logging with Winston</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/nodejs-logging-best-practices/'>Node.js Logging Best Practices</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/best-nodejs-logging-libraries/'>8 Best Node.js Logging Libraries</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/morgan-logging-nodejs/'>Morgan Logging in Node.js</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Python</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-python/'>Logging in Python</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/loguru/'>Logging with Loguru</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/structlog/'>Logging with Structlog</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-django/'>Logging in Django</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-flask/'>Logging in Flask</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/python/python-logging-best-practices/'>Python Logging Best Practices</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/best-python-logging-libraries/'>Best Python Logging Libraries</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Go</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/logging-in-go/'>Logging in Go (Slog)</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/golang-contextual-logging/'>Contextual Logging in Go</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/zerolog/'>Logging with Zerolog</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/go/zap/'>Logging with Zap</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/best-golang-logging-libraries/'>9 Best Go Logging Libraries</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Ruby</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-view-and-configure-ruby-logs/'>Logging in Ruby</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-ruby-on-rails/'>Logging in Ruby on Rails</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/best-ruby-logging-libraries/'>Best Ruby Logging Libraries</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/semantic-logger/'>Semantic Logger</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>.NET</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-net/'>Logging in .NET</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-serilog/'>Logging with Serilog</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-nlog/'>Logging with NLog</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-log4net/'>Logging with Log4net</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/best-dotnet-logging-libraries/'>Best .NET Logging Libraries</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Java</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-java/'>Java Logging Best Practices</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-log4j/'>Logging with Log4j</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/java/logback/'>Logging with Logback</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/best-java-logging-libraries/'>Best Java Logging Libraries</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>PHP</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-php/'>Logging in PHP</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-monolog/'>Logging with Monolog</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-laravel/'>Logging in Laravel</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-log4php/'>Logging with Log4php</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/best-php-logging-libraries/'>Best PHP Logging Libraries</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/php-logging-opentelemetry/'>PHP Logging with OpenTelemetry</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Database</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-mysql/'>Logging in MySQL</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-postgresql/'>Logging in PostgreSQL</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-mariadb/'>Logging in MariaDB</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-redis/'>Logging in Redis</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/database/how-to-start-logging-with-mongodb/'>Logging in MongoDB</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Docker</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-docker/'>Logging in Docker</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/docker-logs/'>Docker Container Logs</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/docker-compose-logs/'>Docker Compose Logs</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Platforms</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-heroku/'>Logging in Heroku</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/platforms/vercel-logging/'>Logging in Vercel</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/gcp-logging/'>Logging in GCP</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/azure-logging/'>Logging in Azure</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Platforms: AWS</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/aws-logging/'>Logging in AWS</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/aws-lambda-logging/'>AWS Lambda Logging</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/aws-cloudtrail-logging/'>AWS CloudTrail Logs</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Log Shippers</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/vector-explained/'>Vector</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/fluentd-explained/'>Fluentd</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/fluent-bit-explained/'>Fluent Bit</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/logstash-explained/'>Logstash</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/filebeat-explained/'>Filebeat</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/rsyslog-explained/'>Rsyslog</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-configure-centralised-rsyslog-server/'>Logging with Rsyslog</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/logging/filebeat-vs-logstash/'>Filebeat vs Logstash</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/logging/fluentd-vs-fluent-bit/'>Fluentd vs Fluent Bit</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/log-shippers-explained/'>The Top 7 Log Shippers Explained</a> </div> </li> </ol> </li> <li class='text-neutral-300' data-controller='collapse'> <div class='flex space-x-2 py-1 side-menu-item cursor-pointer font-bold border-b border-neutral-50' data-action='click->collapse#toggle'> <a class='grow py-2' href=''>Other</a> </div> <ol class='mb-4 hidden' data-collapse-target='content'> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-start-logging-with-postfix/'>Logging with Postfix</a> </div> </li> <li class='text-neutral-300'> <div class='flex space-x-2'> <a class='grow py-2' href='/community/guides/logging/how-to-view-and-analyze-logs-with-windows-event-viewer/'>Logging in Windows</a> </div> </li> </ol> </li> </ol> </div> </div> </div> <div class='mt-20 pt-10 text-neutral-200 bg-[#0B0C14]'> <section class='pt-16 md:pt-20 px-5 md:px-10 pb-16 md:pb-32 bg-[#0B0C14]'> <div class='container mx-auto max-w-[950px]'> <h4 class='sm:ml-10 text-white font-bold whitespace-nowrap text-[36px]'>Make your mark</h4> <div class='mt-12 flex flex-col md:flex-row gap-5'> <div class='flex-1 rounded-xl border border-[#727DA1]/20 bg-[#171824]/80'> <div class='p-8 h-full flex flex-col justify-between'> <div class='grow'> <h5 class='md:mx-3 text-white font-bold text-[20px] leading-[130%]'>Join the writer's program</h5> <p class='mt-3 md:mx-3'> Are you a developer and love writing and sharing your knowledge with the world? Join our guest writing program and get paid for writing amazing technical guides. We'll get them to the right readers that will appreciate them. </p> <a class='block mt-3 md:mx-3 text-[#7C87F7]' href='https://betterstack.com/community/write-for-us'> Write for us <svg class=' w-4 h-4 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/mini/chevron-right-ee58bdc22e1fb683dd9ffd95ba0c4df56d8a2a0904d7ddbe63b6e2b4ab82f090.svg#root'></svg> </a> </div> <div> <div class='mt-10 md:mx-3'>Writer of the month</div> <div class='relative mt-5 px-3 py-4 rounded-xl flex items-start gap-3 bg-[#7C87F7] ring-[6px] ring-[#7C87F7]/10'> <img alt="" width="40" height="40" class="shrink-0 mt-1 lazyload" data-src="/assets/articles/authors/marin-0d19fe482115fe2b15c8429a7ee4eb88d803984eaa7c1d8c7309241049f3d402.png" src="" /> <div class='text-white'> <div class='font-bold'>Marin Bezhanov</div> <div class='mt-1 text-ellipsis text-base line-clamp-2'>Marin is a software engineer and architect with a broad range of experience working...</div> </div> <div class='absolute top-[10px] right-[10px]'> <svg class=' text-white w-5 h-5 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/sparkles-a7c4acf0bcb9f170420cb9484c35a2db6d1ed4ef2796d19929b9d9b792002eb4.svg#root'></svg> </div> </div> </div> </div> </div> <div class='flex-1'> <div class='rounded-xl border border-[#727DA1]/20'> <div class='p-10 bg-github-community rounded-t-xl bg-[#171824]/80'> <h5 class='md:mx-3 text-white font-bold text-[20px] leading-[130%]'>Build on top of Better Stack</h5> <p class='mt-3 md:mx-3'> Write a script, app or project on top of Better Stack and share it with the world. Make a public repository and share it with us at our email. </p> <a class='block mt-3 md:mx-3 whitespace-nowrap text-[#7C87F7]' href='mailto:community@betterstack.com?subject=Better%20Stack%20community%20project&body='> <svg size='w-[18px] h-[18px]' class='hidden sm:inline w-[18px] h-[18px] inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/envelope-11bb634875b80bcbea772441a6edd1fc99b92bfea2a5bbd20b1976622bb05e90.svg#root'></svg> community@betterstack.com </a> </div> <div class='px-6 py-4 border-t text-13 border-[#727DA1]/20'> <p class='max-w-[320px]'>or submit a pull request and help us build better products for everyone.</p> </div> </div> <a class='relative mt-5 p-12 rounded-xl border text-neutral-200 flex flex-col items-center border-[#727DA1]/20' href='https://github.com/betterstack-community/projects' target='_blank'> <svg alt='' width='20' height='20' class='block' style='--currentColor: currentColor;'><use href='/assets/v2/github-e74d48ed6bd519eddfaac1a76a313eed359b3ab311dccab980003682a3d3a05e.svg#root'></svg> <p class='mt-2 text-13 text-center max-w-[180px]'>See the full list of amazing projects on github</p> <div class='absolute top-4 right-4'> <svg size='w-4 h-4' class=' w-4 h-4 inline' style='--currentColor: currentColor;'><use href='/assets/icons/heroicons_v2/solid/arrow-up-right-8a7bd4b24ec9b699f4169848a75b04c0ced5cd1a7016c513456e14b68c71381f.svg#root'></svg> </div> </a> </div> </div> </div> </section> </div> </main> </div> <div class='dark'> <nav class='bg-white text-base border-t dark:bg-[#0B0C14] border-neutral-300/10 text-[#363D4E] dark:text-neutral-200'> <div class='mx-auto px-5 md:px-10 pt-8 lg:pt-14 pb-10 md:pb-20 md:flex max-w-[1110px]'> <div class='flex-2 lg:grow flex gap-5'> <div class='flex-1 lg:flex-2 flex flex-col lg:flex-row'> <div class='lg:mr-16 flex-1'> <div class='mb-16 hidden md:block'> <div class='font-medium text-black dark:text-white'>Platform</div> <a class="inline-block -mx-1 px-1 mt-3" href="/enterprise">Enterprise</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/uptime">Uptime</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/telemetry">Telemetry</a> </div> <div class='mb-16'> <div class='font-medium text-black dark:text-white'>Solutions</div> <a class="inline-block -mx-1 px-1 mt-3" href="/telemetry">Log management</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/infrastructure-monitoring">Infrastructure monitoring</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/uptime">Uptime monitoring</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/website-monitoring">Website monitoring</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/incident-management">Incident management</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/status-page">Status page</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/incident-silencing">Incident silencing</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/slack-incident-management">Slack-based incident management</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/dashboards">Dashboards</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="/integrations">Integrations</a> </div> </div> <div class='flex-1'> <div class='mb-16 hidden lg:block'> <div class='font-medium text-black dark:text-white'>Resources</div> <a class="inline-block -mx-1 px-1 mt-3 whitespace-nowrap" href="/help">Help & Support</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/docs/uptime">Uptime docs</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/docs/logs">Logs docs</a> </div> <div class='mb-16 lg:hidden'> <div class='font-medium text-black dark:text-white'>Company</div> <a class="inline-block -mx-1 px-1 mt-3" href="/careers">Work at Better Stack</a> <br class='lg:hidden'> <a class="inline-block -mx-1 px-1 mt-3" href="/careers/engineering">Engineering</a> <br class='lg:hidden'> <a class="inline-block -mx-1 px-1 mt-3" href="/security">Security</a> </div> <div class='mb-16'> <div class='font-medium text-black dark:text-white'>Community</div> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/community/guides">Guides</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/community/questions">Questions</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/community/comparisons">Comparisons</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/community/blog">Blog</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/community/write-for-us">Write for us</a> </div> </div> </div> <div class='lg:ml-12 flex-1 flex flex-col'> <div class='mb-16 hidden lg:flex flex-col items-start'> <div class='font-medium text-black dark:text-white'>Company</div> <a class="inline-block -mx-1 px-1 mt-3" href="/careers">Work at Better Stack</a> <br class='lg:hidden'> <a class="inline-block -mx-1 px-1 mt-3" href="/careers/engineering">Engineering</a> <br class='lg:hidden'> <a class="inline-block -mx-1 px-1 mt-3" href="/security">Security</a> </div> <div class='mb-16 lg:hidden'> <div class='font-medium text-black dark:text-white'>Resources</div> <a class="inline-block -mx-1 px-1 mt-3 whitespace-nowrap" href="/help">Help & Support</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/docs/uptime">Uptime docs</a> <br> <a class="inline-block -mx-1 px-1 mt-3" href="https://betterstack.com/docs/logs">Logs docs</a> </div> <div class='flex flex-col items-start'> <div class='font-medium text-black dark:text-white'>Compare</div> <a class="inline-block -mx-1 px-1 mt-3" href="/pingdom-alternative">Pingdom</a> <a class="inline-block -mx-1 px-1 mt-3" href="/pagerduty-alternative">Pagerduty</a> <a class="inline-block -mx-1 px-1 mt-3" href="/statuspage-io-alternative">StatusPage.io</a> <a class="inline-block -mx-1 px-1 mt-3" href="/uptime-robot-alternative">Uptime Robot</a> <a class="inline-block -mx-1 px-1 mt-3" href="/statuscake-alternative">StatusCake</a> <a class="inline-block -mx-1 px-1 mt-3" href="/opsgenie-alternative">Opsgenie</a> <a class="inline-block -mx-1 px-1 mt-3" href="/victorops-alternative">VictorOps</a> </div> </div> </div> <div class='md:ml-12 flex-1 flex flex-col items-start grow max-w-[450px]'> <div class='font-medium text-black dark:text-white'>From the community</div> <a class="inline-block -mx-1 px-1 mt-4" href="https://betterstack.com/community/guides/incident-management/what-is-incident-management/">What Is Incident Management? Beginner’s Guide</a> <a class="inline-block -mx-1 px-1 mt-4" href="https://betterstack.com/community/guides/incident-management/on-call-scheduling/">How to Create a Developer-Friendly On-Call Schedule in 7 steps</a> <a class="inline-block -mx-1 px-1 mt-4" href="https://betterstack.com/community/comparisons/free-status-page-tools/">8 Best Free & Open Source Status Page Tools in 2024</a> <a class="inline-block -mx-1 px-1 mt-4" href="https://betterstack.com/community/comparisons/api-monitoring-tools/">10 Best API Monitoring Tools in 2024</a> <a class="inline-block -mx-1 px-1 mt-4" href="https://betterstack.com/community/comparisons/incident-management-tools/">5 Most Used Incident Management Tools (Reviewed & Ranked)</a> </div> </div> </nav> <footer class='bg-[#F3F4F7] dark:bg-[#05060F]'> <div class='mx-auto text-base lg:px-5 max-w-[1110px] text-[#363D4E] dark:text-neutral-200'> <div class='px-5 pt-9 flex flex-col lg:flex-row justify-between items-center lg:items-end border-t border-neutral-300/10'> <div> <svg width='154' height='21' alt='' class='text-black dark:text-white scale-75 lg:scale-100' style='--currentColor: currentColor;'><use href='/assets/v2/better-stack-logo-0dd586683a61184ea953948d207470eeec73c76d81d57cd8af24bf56b36a90db.svg#root' /></svg> <p class='mt-3 hidden lg:block max-w-[342px]'> Better Stack lets you see inside any stack, debug any issue, and resolve any incident. </p> </div> <div class='flex items-center gap-6 whitespace-nowrap'> <a class="hidden lg:block -mx-1 px-1" href="tel:+1 (201) 500-2007">+1 (201) 500-2007</a> <a class="hidden lg:block -mx-1 px-1" href="mailto:hello@betterstack.com">hello@betterstack.com</a> <div class='hidden lg:block h-4 border-l border-neutral-300/10'></div> <div class='hidden lg:flex'><div class='flex gap-4 text-neutral-300'> <a aria-label='Better Stack on Instagram' href='https://www.instagram.com/betterstackhq/' rel='nofollow noopener' target='_blank'><svg width='16' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/instagram-4cc4103de28d49cc15040cfbf4b7a5e62fc76726f8a740f0135e777242b972b5.svg#root' /></svg></a> <a aria-label='Better Stack on TikTok' href='https://www.tiktok.com/@betterstack' rel='nofollow noopener' target='_blank'><svg width='16' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/tiktok-88d69bb11d499d82c7fefe4023153cd0152cbbd72809576171915fb9bd69a083.svg#root' /></svg></a> <a aria-label='Better Stack on LinkedIn' href='https://www.linkedin.com/company/betterstack' rel='nofollow noopener' target='_blank'><svg width='16' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/linkedin-4f511cfd40812cf617fa6ca9fbeff362681a975a1f4f911261bdbeaa2b1cbe19.svg#root' /></svg></a> <a aria-label='Better Stack on Twitter' href='https://twitter.com/betterstackhq' rel='nofollow noopener' target='_blank'><svg width='16' height='16' style='--currentColor: currentColor;'><use href='/assets/v2/twitter-c4218c9e217942ebbf4db83a3dec654ce97a94806c3d0fe7ebe31d7d7d2aa9b9.svg#root' /></svg></a> <a aria-label='Better Stack on Github' href='https://github.com/BetterStackHQ/' rel='nofollow noopener' target='_blank'><svg width='16' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/github-e74d48ed6bd519eddfaac1a76a313eed359b3ab311dccab980003682a3d3a05e.svg#root' /></svg></a> <a aria-label='Better Stack on YouTube' href='https://www.youtube.com/@betterstack' rel='nofollow noopener' target='_blank'><svg width='22' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/youtube-30a10afcb8b82cfd3a8ee62842a5d0651fa8d01ac0e6e472349f4359ea683cae.svg#root' /></svg></a> </div> </div> </div> </div> <div class='px-5 lg:px-2 lg:mx-3 mt-5 py-3 lg:border-t flex flex-col lg:flex-row justify-between items-center border-neutral-300/10 dark:border-[#1F2433]/70 text-[12px] leading-[18px]'> <div class='flex items-center gap-6 whitespace-nowrap dark:text-neutral-300'> <a class="-mx-1 px-1" href="/terms">Terms of Use</a> <a class="-mx-1 px-1" href="/privacy">Privacy Policy</a> <a class="-mx-1 px-1" href="/dpa">GDPR</a> <a class='hidden sm:block -mx-1 px-1' href='https://status.betterstack.com/' target='_blank'> <svg width='14' height='15' alt='All services are up' class='mr-1 hidden lg:inline' style='--currentColor: currentColor;'><use href='/assets/v2/status-green-9b323a3710393221033993056c8b5de0999eaf3139262ab0625db787dee99f00.svg#root' /></svg> System status </a> </div> <div class='mt-8 mb-2 flex lg:hidden'><div class='flex gap-4 text-neutral-300'> <a aria-label='Better Stack on Instagram' href='https://www.instagram.com/betterstackhq/' rel='nofollow noopener' target='_blank'><svg width='16' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/instagram-4cc4103de28d49cc15040cfbf4b7a5e62fc76726f8a740f0135e777242b972b5.svg#root' /></svg></a> <a aria-label='Better Stack on TikTok' href='https://www.tiktok.com/@betterstack' rel='nofollow noopener' target='_blank'><svg width='16' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/tiktok-88d69bb11d499d82c7fefe4023153cd0152cbbd72809576171915fb9bd69a083.svg#root' /></svg></a> <a aria-label='Better Stack on LinkedIn' href='https://www.linkedin.com/company/betterstack' rel='nofollow noopener' target='_blank'><svg width='16' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/linkedin-4f511cfd40812cf617fa6ca9fbeff362681a975a1f4f911261bdbeaa2b1cbe19.svg#root' /></svg></a> <a aria-label='Better Stack on Twitter' href='https://twitter.com/betterstackhq' rel='nofollow noopener' target='_blank'><svg width='16' height='16' style='--currentColor: currentColor;'><use href='/assets/v2/twitter-c4218c9e217942ebbf4db83a3dec654ce97a94806c3d0fe7ebe31d7d7d2aa9b9.svg#root' /></svg></a> <a aria-label='Better Stack on Github' href='https://github.com/BetterStackHQ/' rel='nofollow noopener' target='_blank'><svg width='16' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/github-e74d48ed6bd519eddfaac1a76a313eed359b3ab311dccab980003682a3d3a05e.svg#root' /></svg></a> <a aria-label='Better Stack on YouTube' href='https://www.youtube.com/@betterstack' rel='nofollow noopener' target='_blank'><svg width='22' height='17' style='--currentColor: currentColor;'><use href='/assets/v2/youtube-30a10afcb8b82cfd3a8ee62842a5d0651fa8d01ac0e6e472349f4359ea683cae.svg#root' /></svg></a> </div> </div> <div class='flex items-center text-neutral-300'> © 2025 Better Stack, Inc. <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="root" fill="none" height="15" viewBox="0 0 14 15" width="14" class="ml-2 transition hover:-rotate-[15deg] hidden lg:inline"><mask id="a" fill="#000" height="14" maskUnits="userSpaceOnUse" width="14" x=".84082" y=".910156"><path d="m.84082.910156h14v14h-14z" fill="#fff"></path><path clip-rule="evenodd" d="m12.4541 1.91016h-4.37651v.54686h-.54823v.54771 1.85936 1.2038h-.54617v.54725h-.87535v.54642h-.87576v.54777h-.54616v.54551h-.0011-.54589-.54734v-.65488h-.54706v2.84474h.54616v.6549h.54824v.547h.54699v.4392.6557.5469.4376.0003h.65647v-.0003h.43765v-.4376h-.43765v-.5469h.43765v-.6557h.54706v-.5478h.65609v.5472h.43768v.1982h1.09412v-.4377h-.54709v-.8541h.54701v-.5472h.54712v-.87494h.54616v-1.86076h.65821v.43832h.547v-.54706h-.0011v-.43832h-1.20411v-1.2027h.65671v-1.09465h2.1892v-.0002h.5459v-2.40707h-.5459zm-9.41064 5.25148h-.54617v-1.20358h-.65647v3.50119h.54616v.43769h.65648zm7.22294-1.74985h1.6412v.54706h-1.6412zm-1.62526-2.63729h.00042v-.00005h.80045v.00013h.26677v1.06726h-.26682v-.00107h-.8004v-.26582h-.00042zm.26682.79945h.534v-.53268h-.534z" fill="#000" fill-rule="evenodd"></path></mask><path d="m8.07759 1.91016v-.952682h-.95268v.952682zm4.37651 0h.9527v-.952682h-.9527zm-4.37651.54686v.95268h.95268v-.95268zm-.54823 0v-.95268h-.95268v.95268zm0 3.61087v.95268h.95268v-.95268zm-.54617 0v-.95268h-.95267v.95268zm0 .54725v.95268h.95268v-.95268zm-.87535 0v-.95268h-.95267v.95268zm0 .54642v.95268h.95268v-.95268zm-.87576 0v-.95268h-.95268v.95268zm0 .54777v.95268h.95268v-.95268zm-.54616 0v-.95268h-.95268v.95268zm0 .54551v.95268h.95268v-.95268zm-1.09433 0h-.95268v.95268h.95268zm0-.65488h.95268v-.95268h-.95268zm-.54706 0v-.95268h-.95268v.95268zm0 2.84474h-.95268v.9527h.95268zm.54616 0h.95268v-.9527h-.95268zm0 .6549h-.95268v.9526h.95268zm.54824 0h.95268v-.9527h-.95268zm0 .547h-.95268v.9527h.95268zm.54699 0h.95268v-.9527h-.95268zm0 2.0797h-.95268v.9527h.95268zm.65647 0v.9527h.95268v-.9527zm0-.0003v-.9526h-.95268v.9526zm.43765 0v.9527h.95268v-.9527zm0-.4376h.95268v-.9527h-.95268zm-.43765 0h-.95268v.9527h.95268zm0-.5469v-.9527h-.95268v.9527zm.43765 0v.9527h.95268v-.9527zm0-.6557v-.9527h-.95268v.9527zm.54706 0v.9527h.95268v-.9527zm0-.5478v-.9526h-.95268v.9526zm.65609 0h.95268v-.9526h-.95268zm0 .5472h-.95267v.9527h.95267zm.43768 0h.95268v-.9527h-.95268zm0 .1982h-.95268v.9526h.95268zm1.09412 0v.9526h.95268v-.9526zm0-.4377h.95268v-.9527h-.95268zm-.54709 0h-.95267v.9527h.95267zm0-.8541v-.9527h-.95267v.9527zm.54701 0v.9527h.95268v-.9527zm0-.5472v-.9527h-.95268v.9527zm.54712 0v.9527h.95267v-.9527zm0-.87494v-.95267h-.95268v.95267zm.54616 0v.95264h.95271v-.95264zm0-1.86076v-.95268h-.95268v.95268zm.65821 0h.9527v-.95268h-.9527zm0 .43832h-.9527v.95268h.9527zm.547 0v.95268h.9527v-.95268zm0-.54706h.9527v-.95268h-.9527zm-.0011 0h-.95264v.95268h.95264zm0-.43832h.9527v-.95268h-.9527zm-1.20411 0h-.95268v.95268h.95268zm0-1.2027v-.95268h-.95268v.95268zm.65671 0v.95268h.9527v-.95268zm0-1.09465v-.95268h-.95267v.95268zm2.1892 0v.95267h.9527v-.95267zm0-.0002v-.95268h-.9527v.95268zm.5459 0v.95267h.9526v-.95267zm0-2.40707h.9526v-.95268h-.9526zm-.5459 0h-.9527v.95268h.9527zm-9.95681 4.70462h-.95268v.95268h.95268zm.54617 0h.95267v-.95268h-.95267zm-.54617-1.20358h.95268v-.95268h-.95268zm-.65647 0v-.95268h-.952678v.95268zm0 3.50119h-.952678v.95265h.952678zm.54616 0h.95268v-.95268h-.95268zm0 .43769h-.95268v.95266h.95268zm.65648 0v.95266h.95267v-.95266zm8.86414-4.48515h.9526v-.95268h-.9526zm-1.6412 0v-.95268h-.9527v.95268zm1.6412.54706v.95268h.9526v-.95268zm-1.6412 0h-.9527v.95268h.9527zm-1.62484-3.18435v.95268h.95268v-.95268zm-.00042 0v-.95268h-.95267v.95268zm.00042-.00005v-.95268h-.95268v.95268zm.80045 0h.95269v-.95268h-.95269zm0 .00013h-.95268v.95268h.95268zm.26677 0h.95272v-.95268h-.95272zm0 1.06726v.95268h.95272v-.95268zm-.26682 0h-.95268v.95268h.95268zm0-.00107h.95264v-.95268h-.95264zm-.8004 0h-.95268v.95267h.95268zm0-.26582h.95268v-.95268h-.95268zm-.00042 0h-.95267v.95268h.95267zm.26682-.001h-.95268v.95268h.95268zm.534 0v.95268h.95264v-.95268zm0-.53268h.95264v-.95268h-.95264zm-.534 0v-.95268h-.95268v.95268zm-.83037-.17844h4.37651v-1.905352h-4.37651zm.95268-.40581v-.54686h-1.90536v.54686zm-1.50091.95268h.54823v-1.90536h-.54823zm.95268-.40497v-.54771h-1.90536v.54771zm0 1.85936v-1.85936h-1.90536v1.85936zm0 1.2038v-1.2038h-1.90536v1.2038zm-1.49885.95268h.54617v-1.90536h-.54617zm.95268-.40543v-.54725h-1.90535v.54725zm-1.82803.95268h.87535v-1.90536h-.87535zm.95268-.40626v-.54642h-1.90535v.54642zm-1.82844.95268h.87576v-1.90536h-.87576zm.95268-.40491v-.54777h-1.90536v.54777zm-1.49884.95268h.54616v-1.90536h-.54616zm.95268-.40717v-.54551h-1.90536v.54551zm-.95378.95268h.0011v-1.90535h-.0011zm-.54589 0h.54589v-1.90535h-.54589zm-.54734 0h.54734v-1.90535h-.54734zm-.95268-1.60756v.65488h1.90536v-.65488zm.40562.95268h.54706v-1.90536h-.54706zm.95268 1.89206v-2.84474h-1.90536v2.84474zm-.40652-.9527h-.54616v1.9054h.54616zm.95268 1.6076v-.6549h-1.90536v.6549zm-.40444-.9527h-.54824v1.9053h.54824zm.95268 1.4997v-.547h-1.90536v.547zm-.40569-.9527h-.54699v1.9054h.54699zm.95268 1.3919v-.4392h-1.90536v.4392zm0 .6557v-.6557h-1.90536v.6557zm0 .5469v-.5469h-1.90536v.5469zm0 .4376v-.4376h-1.90536v.4376zm0 .0003v-.0003h-1.90536v.0003zm-.29621-.9526h-.65647v1.9053h.65647zm-.95268.9523v.0003h1.90536v-.0003zm1.39033-.9526h-.43765v1.9053h.43765zm-.95268.515v.4376h1.90536v-.4376zm.51503.9527h.43765v-1.9054h-.43765zm-.95268-1.4996v.5469h1.90536v-.5469zm1.39033-.9527h-.43765v1.9054h.43765zm-.95268.297v.6557h1.90536v-.6557zm1.49974-.9527h-.54706v1.9054h.54706zm-.95268.4049v.5478h1.90536v-.5478zm1.60877-.9526h-.65609v1.9053h.65609zm.95268 1.4998v-.5472h-1.90535v.5472zm-.515-.9527h-.43768v1.9054h.43768zm.95268 1.1509v-.1982h-1.90536v.1982zm.14144-.9527h-1.09412v1.9053h1.09412zm-.95268.515v.4377h1.90536v-.4377zm.40559.9527h.54709v-1.9054h-.54709zm-.95267-1.8068v.8541h1.90535v-.8541zm1.49968-.9527h-.54701v1.9054h.54701zm-.95268.4055v.5472h1.90536v-.5472zm1.4998-.9527h-.54712v1.9054h.54712zm-.95268.07776v.87494h1.90535v-.87494zm1.49884-.95267h-.54616v1.90531h.54616zm-.95268-.90809v1.86076h1.90539v-1.86076zm1.61089-.95268h-.65821v1.90536h.65821zm.9527 1.391v-.43832h-1.9054v.43832zm-.4057-.95268h-.547v1.90536h.547zm-.95264.40562v.54706h1.90534v-.54706zm.95154.95268h.0011v-1.90536h-.0011zm-.95264-1.391v.43832h1.90534v-.43832zm-.25147.95268h1.20411v-1.90536h-1.20411zm-.95268-2.15538v1.2027h1.90539v-1.2027zm1.60939-.95268h-.65671v1.90536h.65671zm-.95267-.14197v1.09465h1.90537v-1.09465zm3.14187-.95268h-2.1892v1.90535h2.1892zm-.9527.95248v.0002h1.9054v-.0002zm1.4986-.95268h-.5459v1.90535h.5459zm-.9527-1.45439v2.40707h1.9053v-2.40707zm.4068.95268h.5459v-1.90536h-.5459zm-.9527-1.49954v.54686h1.9054v-.54686zm-9.00411 6.20416h.54617v-1.90536h-.54617zm-.95268-2.15626v1.20358h1.90536v-1.20358zm.29621.95268h.65647v-1.90536h-.65647zm.95268 2.54851v-3.50119h-1.905358v3.50119zm-.40652-.95268h-.54616v1.90533h.54616zm.95268 1.39037v-.43769h-1.90536v.43769zm-.2962-.95268h-.65648v1.90534h.65648zm-.95268-1.78262v2.7353h1.90535v-2.7353zm9.81682-2.70253h-1.6412v1.90536h1.6412zm.9526 1.49974v-.54706h-1.9053v.54706zm-2.5938.95268h1.6412v-1.90536h-1.6412zm-.9527-1.49974v.54706h1.9054v-.54706zm-.67214-3.58997h-.00042v1.90536h.00042zm-.95268.95263v.00005h1.90536v-.00005zm1.75313-.95268h-.80045v1.90536h.80045zm.95269.95281v-.00013h-1.90537v.00013zm-.68592-.95268h-.26677v1.90536h.26677zm.95272 2.01994v-1.06726h-1.9054v1.06726zm-1.21954.95268h.26682v-1.90536h-.26682zm-.95268-.95375v.00107h1.90532v-.00107zm.95268-.95268h-.8004v1.90535h.8004zm.15228.95268v-.26582h-1.90536v.26582zm-.9531.68686h.00042v-1.90536h-.00042zm-.95267-1.75313v.80045h1.90535v-.80045zm1.21949 1.75213h.534v-1.90536h-.534zm-.41868-1.48536v.53268h1.90532v-.53268zm.41868.95268h.534v-1.90536h-.534zm.95268-.42v-.53268h-1.90536v.53268z" fill="#646e87" mask="url(#a)"></path></svg> </div> </div> </div> </footer> </div> </div> <script src='https://cdnjs.betterstack.com/prismjs@1.29.0/components/prism-core.min.js'></script> <script src='https://cdnjs.betterstack.com/prismjs@1.29.0/plugins/autoloader/prism-autoloader.min.js'></script> <script src='https://cdnjs.betterstack.com/prismjs@1.29.0/plugins/keep-markup/prism-keep-markup.min.js'></script> </body> </html>