{"id":18357,"date":"2025-04-17T01:30:14","date_gmt":"2025-04-16T22:30:14","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/"},"modified":"2025-04-17T01:30:14","modified_gmt":"2025-04-16T22:30:14","slug":"python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/","title":{"rendered":"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu"},"content":{"rendered":"<p><body><\/p>\n<p>Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu<\/p>\n<p>Merhaba! Bu makalede, Python&#8217;da tekli \u00f6rnek (singleton) loglay\u0131c\u0131 tasar\u0131m\u0131n\u0131n detaylar\u0131na, \u00f6zellikle de \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 (multithreaded) ortamlarda kar\u015f\u0131la\u015f\u0131lan iplik g\u00fcvenli\u011fi sorunlar\u0131na ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fine odaklanaca\u011f\u0131z.  \u00d6nceki yaz\u0131lar\u0131m\u0131zda tekli \u00f6rnek loglay\u0131c\u0131lar\u0131n temelini olu\u015fturduk.  Ancak ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in, performans\u0131 ve g\u00fcvenilirli\u011fi art\u0131rmak i\u00e7in ek \u00f6nlemler almak \u015fartt\u0131r.<\/p>\n<p>\u00c7ok i\u015f par\u00e7ac\u0131kl\u0131 uygulamalarda, birden fazla i\u015f par\u00e7ac\u0131\u011f\u0131 ayn\u0131 anda loglamaya \u00e7al\u0131\u015fabilir. Bu durum, yar\u0131\u015f ko\u015fullar\u0131na (race conditions) ve beklenmedik sonu\u00e7lara yol a\u00e7abilir.  <strong>Yar\u0131\u015f ko\u015fullar\u0131<\/strong>, iki veya daha fazla i\u015f par\u00e7ac\u0131\u011f\u0131n\u0131n ayn\u0131 veriyi ayn\u0131 anda de\u011fi\u015ftirmeye \u00e7al\u0131\u015fmas\u0131 sonucu ortaya \u00e7\u0131kar.  \u00d6rne\u011fin, log dosyas\u0131na yazma i\u015flemi s\u0131ras\u0131nda bir yar\u0131\u015f ko\u015fuluyla kar\u015f\u0131la\u015f\u0131l\u0131rsa, log mesajlar\u0131 bozulabilir veya eksik olabilir.<\/p>\n<h2>\u0130plik G\u00fcvenli\u011fi ve Kilitleme Mekanizmalar\u0131<\/h2>\n<p>Bu sorunu \u00e7\u00f6zmek i\u00e7in, <strong>kilitleme (locking)<\/strong> mekanizmalar\u0131 kullan\u0131l\u0131r.  Kilitleme, bir i\u015f par\u00e7ac\u0131\u011f\u0131n\u0131n kritik b\u00f6lgeye (critical section) \u2013 yani, payla\u015f\u0131lan bir kayna\u011fa eri\u015filmesi gereken kod blo\u011fu \u2013 eri\u015fmesini sa\u011flar ve di\u011fer i\u015f par\u00e7ac\u0131klar\u0131n\u0131n bu b\u00f6lgeye eri\u015fmesini engeller. Python&#8217;da, <code>threading.Lock()<\/code> s\u0131n\u0131f\u0131 kullan\u0131larak kolayca kilitleme uygulanabilir.<\/p>\n<pre><code class=\"language-python\">\nimport logging\nimport threading\n\nclass SingletonLogger:\n    __instance = None\n    __lock = threading.Lock()\n\n    @staticmethod\n    def get_instance():\n        if SingletonLogger.__instance is None:\n            with SingletonLogger.__lock:\n                if SingletonLogger.__instance is None:\n                    SingletonLogger.__instance = SingletonLogger()\n        return SingletonLogger.__instance\n\n    def __init__(self):\n        if SingletonLogger.__instance is not None:\n            raise Exception(\"Bu s\u0131n\u0131f\u0131n tekli \u00f6rne\u011fi zaten olu\u015fturulmu\u015f!\")\n        logging.basicConfig(filename='app.log', level=logging.INFO, \n                            format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')\n        self.logger = logging.getLogger(__name__)\n\n\n    def log(self, message):\n        self.logger.info(message)\n\n# \u00d6rnek kullan\u0131m:\nlogger = SingletonLogger.get_instance()\nlogger.log(\"Bu bir log mesaj\u0131d\u0131r.\")\n<\/code><\/pre>\n<p>Yukar\u0131daki kodda, <code>__lock<\/code> de\u011fi\u015fkeni bir kilit nesnesidir.  <code>get_instance()<\/code> metodu, bir tekli \u00f6rnek olu\u015fturulmadan \u00f6nce kilidi al\u0131r ve bu sayede, birden fazla i\u015f par\u00e7ac\u0131\u011f\u0131n\u0131n ayn\u0131 anda bir tekli \u00f6rnek olu\u015fturmas\u0131n\u0131 engeller.  Kilitleme,  yar\u0131\u015f ko\u015fullar\u0131n\u0131 \u00f6nlemek i\u00e7in kritik bir ad\u0131md\u0131r.<\/p>\n<h2>Kilitleme Optimizasyonu<\/h2>\n<p>Ancak, a\u015f\u0131r\u0131 kilitleme performans\u0131 olumsuz etkileyebilir.  Bu nedenle, kilitleme i\u015flemlerini optimize etmek \u00f6nemlidir.  Yukar\u0131daki \u00f6rnekte, \u00e7ift kontrol (double-checked locking) tekni\u011fi kullan\u0131lm\u0131\u015ft\u0131r.  Bu teknik, gereksiz kilitleme i\u015flemlerini azalt\u0131r.  \u0130lk kontrol, kilitleme i\u015flemi yap\u0131lmadan \u00f6nce ger\u00e7ekle\u015ftirilir ve e\u011fer tekli \u00f6rnek zaten olu\u015fturulmu\u015fsa, kilitleme i\u015flemi atlat\u0131l\u0131r.<\/p>\n<p>Ayr\u0131ca, m\u00fcmk\u00fcn oldu\u011funca k\u00fc\u00e7\u00fck kritik b\u00f6lge tan\u0131mlamak da \u00f6nemlidir.  Kritik b\u00f6lge ne kadar k\u00fc\u00e7\u00fckse, kilitleme nedeniyle performans kayb\u0131 o kadar az olur.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Python&#8217;da tekli \u00f6rnek loglay\u0131c\u0131 tasar\u0131m\u0131, \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 uygulamalar i\u00e7in olduk\u00e7a \u00f6nemlidir.  \u0130plik g\u00fcvenli\u011fi ve yar\u0131\u015f ko\u015fullar\u0131n\u0131 \u00f6nlemek i\u00e7in kilitleme mekanizmalar\u0131 kullan\u0131lmal\u0131d\u0131r.  Ancak,  performans kayb\u0131n\u0131 \u00f6nlemek amac\u0131yla, kilitleme i\u015flemleri dikkatlice optimize edilmelidir.  Bu makalede anlat\u0131lan teknikleri kullanarak, g\u00fcvenilir ve performansl\u0131 loglama \u00e7\u00f6z\u00fcmleri geli\u015ftirebilirsiniz.<\/p>\n<p>Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.  Ayr\u0131ca, daha derinlemesine bilgi i\u00e7in  <a href=\"https:\/\/dev.to\/bhavukkalra\/python-singleton-logger-part-2-thread-safety-race-conditions-lock-optimization-1l2o\">bu makaleye<\/a> g\u00f6z atabilirsiniz.<\/p>\n<p>#Etiketler: Python, Singleton, Logger, \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131, Kilitleme, Lock, Threading, Python Logging, Performans, Optimizasyon<br \/>\n<\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu Merhaba! Bu makalede, Python&#8217;da tekli \u00f6rnek (singleton)&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-18357","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu<\/title>\n<meta name=\"description\" content=\"Merhaba! Bu makalede, Python&#039;da tekli \u00f6rnek (singleton) loglay\u0131c\u0131 tasar\u0131m\u0131n\u0131n detaylar\u0131na, \u00f6zellikle de \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 (multithreaded) ortamlarda kar\u015f\u0131la\u015f\u0131lan iplik g\u00fcvenli\u011fi sorunlar\u0131na ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fine odaklanaca\u011f\u0131z. \u00d6nceki yaz\u0131lar\u0131m\u0131zda tekli \u00f6rnek loglay\u0131c\u0131lar\u0131n temelini olu\u015fturduk. Ancak ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in, performans\u0131 ve g\u00fcvenilirli\u011fi art\u0131rmak i\u00e7in ek \u00f6nlemler almak \u015fartt\u0131r.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu\" \/>\n<meta property=\"og:description\" content=\"Merhaba! Bu makalede, Python&#039;da tekli \u00f6rnek (singleton) loglay\u0131c\u0131 tasar\u0131m\u0131n\u0131n detaylar\u0131na, \u00f6zellikle de \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 (multithreaded) ortamlarda kar\u015f\u0131la\u015f\u0131lan iplik g\u00fcvenli\u011fi sorunlar\u0131na ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fine odaklanaca\u011f\u0131z. \u00d6nceki yaz\u0131lar\u0131m\u0131zda tekli \u00f6rnek loglay\u0131c\u0131lar\u0131n temelini olu\u015fturduk. Ancak ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in, performans\u0131 ve g\u00fcvenilirli\u011fi art\u0131rmak i\u00e7in ek \u00f6nlemler almak \u015fartt\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-16T22:30:14+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu\",\"datePublished\":\"2025-04-16T22:30:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/\"},\"wordCount\":513,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/\",\"name\":\"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-04-16T22:30:14+00:00\",\"description\":\"Merhaba! Bu makalede, Python'da tekli \u00f6rnek (singleton) loglay\u0131c\u0131 tasar\u0131m\u0131n\u0131n detaylar\u0131na, \u00f6zellikle de \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 (multithreaded) ortamlarda kar\u015f\u0131la\u015f\u0131lan iplik g\u00fcvenli\u011fi sorunlar\u0131na ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fine odaklanaca\u011f\u0131z. \u00d6nceki yaz\u0131lar\u0131m\u0131zda tekli \u00f6rnek loglay\u0131c\u0131lar\u0131n temelini olu\u015fturduk. Ancak ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in, performans\u0131 ve g\u00fcvenilirli\u011fi art\u0131rmak i\u00e7in ek \u00f6nlemler almak \u015fartt\u0131r.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu","description":"Merhaba! Bu makalede, Python'da tekli \u00f6rnek (singleton) loglay\u0131c\u0131 tasar\u0131m\u0131n\u0131n detaylar\u0131na, \u00f6zellikle de \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 (multithreaded) ortamlarda kar\u015f\u0131la\u015f\u0131lan iplik g\u00fcvenli\u011fi sorunlar\u0131na ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fine odaklanaca\u011f\u0131z. \u00d6nceki yaz\u0131lar\u0131m\u0131zda tekli \u00f6rnek loglay\u0131c\u0131lar\u0131n temelini olu\u015fturduk. Ancak ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in, performans\u0131 ve g\u00fcvenilirli\u011fi art\u0131rmak i\u00e7in ek \u00f6nlemler almak \u015fartt\u0131r.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/","og_locale":"tr_TR","og_type":"article","og_title":"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu","og_description":"Merhaba! Bu makalede, Python'da tekli \u00f6rnek (singleton) loglay\u0131c\u0131 tasar\u0131m\u0131n\u0131n detaylar\u0131na, \u00f6zellikle de \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 (multithreaded) ortamlarda kar\u015f\u0131la\u015f\u0131lan iplik g\u00fcvenli\u011fi sorunlar\u0131na ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fine odaklanaca\u011f\u0131z. \u00d6nceki yaz\u0131lar\u0131m\u0131zda tekli \u00f6rnek loglay\u0131c\u0131lar\u0131n temelini olu\u015fturduk. Ancak ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in, performans\u0131 ve g\u00fcvenilirli\u011fi art\u0131rmak i\u00e7in ek \u00f6nlemler almak \u015fartt\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-04-16T22:30:14+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu","datePublished":"2025-04-16T22:30:14+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/"},"wordCount":513,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/","url":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/","name":"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-04-16T22:30:14+00:00","description":"Merhaba! Bu makalede, Python'da tekli \u00f6rnek (singleton) loglay\u0131c\u0131 tasar\u0131m\u0131n\u0131n detaylar\u0131na, \u00f6zellikle de \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 (multithreaded) ortamlarda kar\u015f\u0131la\u015f\u0131lan iplik g\u00fcvenli\u011fi sorunlar\u0131na ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fine odaklanaca\u011f\u0131z. \u00d6nceki yaz\u0131lar\u0131m\u0131zda tekli \u00f6rnek loglay\u0131c\u0131lar\u0131n temelini olu\u015fturduk. Ancak ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in, performans\u0131 ve g\u00fcvenilirli\u011fi art\u0131rmak i\u00e7in ek \u00f6nlemler almak \u015fartt\u0131r.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/python-tekli-ornek-loglayici-iplik-guvenligi-yaris-kosullari-ve-kilitleme-optimizasyonu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python Tekli \u00d6rnek Loglay\u0131c\u0131: \u0130plik G\u00fcvenli\u011fi, Yar\u0131\u015f Ko\u015fullar\u0131 ve Kilitleme Optimizasyonu"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/18357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=18357"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/18357\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=18357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=18357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=18357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}