blob: 9c0bca963fa01bae96997739f080f8315a5cd86b [file]
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="tr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>G&uuml;nl&uuml;k Dosyaları - Apache HTTP Sunucusu S&uuml;r&uuml;m 2.5</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="./style/css/prettify.css">
<script src="./style/scripts/prettify.min.js">
</script>
<link href="./images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Mod&uuml;ller</a> | <a href="./mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
<p class="apache">Apache HTTP Sunucusu S&uuml;r&uuml;m 2.5</p>
<img alt="" src="./images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="https://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">S&uuml;r&uuml;m 2.5</a></div><div id="page-content"><div id="preamble"><h1>G&uuml;nl&uuml;k Dosyaları</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/logs.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/logs.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Bu &ccedil;eviri g&uuml;ncel olmayabilir. Son değişiklikler i&ccedil;in İngilizce s&uuml;r&uuml;m ge&ccedil;erlidir.</div>
<p>Bir HTTP sunucusunu verimli şekilde y&ouml;netebilmek i&ccedil;in oluşabilecek
sorunlardan başka sunucunun başarımı ve etkinliği hakkında da bazı geri
bildirimler almak gerekir. Apache HTTP Sunucusu &ccedil;ok kapsamlı ve esnek
bir g&uuml;nl&uuml;kleme yeteneğine sahiptir. Bu belgede sunucunun g&uuml;nl&uuml;kleme
yeteneğini nasıl yapılandıracağınızdan ve g&uuml;nl&uuml;k kayıtlarını nasıl
yorumlayacağınızdan bahsedilecektir.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif"> <a href="#overview">Giriş</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#security">G&uuml;venlik Uyarısı</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#errorlog">Hata G&uuml;nl&uuml;ğ&uuml;</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#permodule">Mod&uuml;llere g&ouml;re g&uuml;nl&uuml;kleme</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#accesslog">Erişim G&uuml;nl&uuml;ğ&uuml;</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#rotation">G&uuml;nl&uuml;k &Ccedil;evrimi</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#piped">Borulu G&uuml;nl&uuml;kler</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#virtualhost">Sanal Konaklar</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#other">Diğer G&uuml;nl&uuml;k Dosyaları</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="overview">Giriş <a title="Permanent link" href="#overview" class="permalink">&para;</a></h2>
<table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;nergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td></td></tr></table>
<p>Apache HTTP Sunucusu, isteğin ilk alınışından itibaren, URL eşleme
işlemleri, bağlantının son &ccedil;&ouml;z&uuml;mlemesi ve bu işlemler sırasına ortaya &ccedil;ıkan
hatalar da dahil olmak &uuml;zere sunucunuzda meydana gelen herşeyi g&uuml;nl&uuml;klemek
i&ccedil;in &ccedil;ok &ccedil;eşitli mekanizmalar i&ccedil;erir. Buna ek olarak, g&uuml;nl&uuml;kleme
yetenekleri sağlayan &uuml;&ccedil;&uuml;nc&uuml; parti mod&uuml;ller de kullanılabilir veya mevcut
g&uuml;nl&uuml;k dosyalarına girdiler enjekte edilebilir. Ayrıca, CGI programları,
PHP betikleri ve benzerleri sunucu hata g&uuml;nl&uuml;ğ&uuml;ne kendi iletilerini
g&ouml;nderebilirler.</p>
<p>Bu belgede Apache HTTP Sunucusunun standart par&ccedil;ası olan g&uuml;nl&uuml;kleme
mod&uuml;lleri hakkında bilgi verilecektir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="security">G&uuml;venlik Uyarısı <a title="Permanent link" href="#security" class="permalink">&para;</a></h2>
<p>Apache httpd'nin g&uuml;nl&uuml;k dosyalarını yazdığı dizine yazabilen birinin sunucuyu
başlatan kullanıcı kimliğine (bu genellikle root olur) erişim
kazanabileceğine hemen hemen kesin g&ouml;z&uuml;yle bakılabilir. Sonu&ccedil;larının
neler olacağını kestiremiyorsanız g&uuml;nl&uuml;klerin yazıldığı dizinde <em>hi&ccedil;
kimseye</em> yazma erişimi vermeyin; ayrıntılı bilgi i&ccedil;in <a href="misc/security_tips.html">g&uuml;venlik ipu&ccedil;ları</a> belgesine
bakınız.</p>
<p>Buna ilaveten, g&uuml;nl&uuml;k dosyaları istemci tarafından sağlanmış bilgiler
de i&ccedil;erebilir. Bu nedenle, k&ouml;t&uuml; niyetli istemcilerin g&uuml;nl&uuml;k dosyalarına
denetim karakterleri girmeleri olasılığına karşı ham g&uuml;nl&uuml;kler ele
alınırken dikkatli olunmalıdır.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="errorlog">Hata G&uuml;nl&uuml;ğ&uuml; <a title="Permanent link" href="#errorlog" class="permalink">&para;</a></h2>
<table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;nergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code></li><li><code class="directive"><a href="./mod/core.html#errorlogformat">ErrorLogFormat</a></code></li><li><code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code></li></ul></td></tr></table>
<p>İsmi ve yeri <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> y&ouml;nergesi
ile belirtilen sunucu hata g&uuml;nl&uuml;ğ&uuml;, en &ouml;nemli g&uuml;nl&uuml;k dosyasıdır. Apache
httpd tarafından istekler işlenirken saptanan hatalar ve tanı bilgileri
bu dosyaya g&ouml;nderilir. Sunucuyu başlatırken veya sunucu &ccedil;alışırken bir
sorunla karşılaşıldığında, neyin yanlış gittiğini &ouml;ğrenmek i&ccedil;in
bakılacak ilk yer burasıdır. G&uuml;nl&uuml;k kaydı &ccedil;oğunlukla sorunun nasıl
d&uuml;zeltileceği ile ilgili ayrıntıları da i&ccedil;erir.</p>
<p>Hata g&uuml;nl&uuml;ğ&uuml; normal olarak bir dosyaya yazılır (genellikle, dosyanın
ismi Unix sistemlerinde <code>error_log</code>, OS/2 ve Windows'ta ise
<code>error.log</code>'dur). Ayrıca, Unix sistemlerinde sunucunun
hataları <code>syslog</code>'a veya <a href="#piped">borulamak suretiyle
bir programa</a> aktarması da m&uuml;mk&uuml;nd&uuml;r.</p>
<p>Hata g&uuml;nl&uuml;ğ&uuml;n&uuml;n bi&ccedil;emi <code class="directive"><a href="./mod/core.html#errorlogformat">ErrorLogFormat</a></code> y&ouml;nergesi ile belirlenir. Bu y&ouml;nergeyi
kullanarak g&uuml;nl&uuml;klenen değerleri &ouml;zelleştirebilirsiniz. Bir bi&ccedil;em
belirtmezseniz &ouml;ntanımlı bi&ccedil;em kullanılır. &Ouml;rnek tipik bir hata iletisi
i&ccedil;ermektedir:</p>
<div class="example"><p><code>
[Fri Sep 09 10:42:29.902022 2011] [core:error] [pid 35708:tid 4328636416]
[client 72.15.99.187] Dosya yok: /usr/local/apache2/htdocs/favicon.ico
</code></p></div>
<p>G&uuml;nl&uuml;k girdisinin ilk &ouml;ğesi iletinin yazıldığı tarih ve saatten oluşur.
İkincisi iletiyi &uuml;reten mod&uuml;l&uuml;n ismi (bu durumda: core) ile raporlanan
bilginin &ouml;nem derecesini belirtir. Bunu varsa s&uuml;recin kimliği ve yine
varsa evre kimliği izler. Sonraki &ouml;ğe hatanın &uuml;retilmesine sebep olan
istemcinin IP adresini i&ccedil;erir. Kalanı iletinin kendisidir (duruma
bakılırsa bir dosyaya yapılan istek yerine getirilememiş).</p>
<p>Hata g&uuml;nl&uuml;ğ&uuml;nde g&ouml;r&uuml;nebilecek ileti &ccedil;eşitliliği olduk&ccedil;a fazladır. &Ccedil;oğu
yukarıdaki &ouml;rneğin benzeridir. Hata g&uuml;nl&uuml;ğ&uuml; ayrıca, CGI betiklerinin
hata ayıklama &ccedil;ıktılarını da i&ccedil;erir. Bir CGI betiği tarafından standart
hataya (<code>stderr</code>) yazılan her t&uuml;rl&uuml; bilgi doğrudan hata
g&uuml;nl&uuml;ğ&uuml;ne kopyalanır.</p>
<p>Hata g&uuml;nl&uuml;ğ&uuml;ne ve erişim g&uuml;nl&uuml;ğ&uuml;ne <code>%L</code> dizgeciği konularak
erişim g&uuml;nl&uuml;ğ&uuml;ndeki girdi ile hata g&uuml;nl&uuml;ğ&uuml;ndeki girdiyi ilişkilendirecek
bir g&uuml;nl&uuml;k girdisi kimliği oluşturulabilir.
<code class="module"><a href="./mod/mod_unique_id.html">mod_unique_id</a></code> y&uuml;kl&uuml;yse g&uuml;nl&uuml;k girdisi kimliği olarak
onun eşsiz istek kimliği de kullanılır.</p>
<p>Sunucuyu denerken olası sorunlara karşı hata g&uuml;nl&uuml;ğ&uuml;n&uuml; s&uuml;rekli
izlemelisiniz. Unix sistemlerinde bunu ş&ouml;yle bir komutla
sağlayabilirsiniz:</p>
<div class="example"><p><code>
tail -f error_log
</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="permodule">Mod&uuml;llere g&ouml;re g&uuml;nl&uuml;kleme <a title="Permanent link" href="#permodule" class="permalink">&para;</a></h2>
<p><code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> y&ouml;nergesi, g&uuml;nl&uuml;k
iletisinin &uuml;retilmesine sebep olan mod&uuml;le bağlı bir &ouml;nem seviyesi
belirleyebilmenizi sağlar. Bu yolla sorun yaşadığınız mod&uuml;lle ilgili
g&uuml;nl&uuml;k musluklarını sonuna kadar a&ccedil;abiliri ek olarak ilgilendiğiniz diğer
mod&uuml;llerle ilgili ayrıntıları da edinebilirsiniz. &Ouml;zellikle
<code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> veya <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> gibi
mod&uuml;llerde yapılmak isteneni denerken neler olup bittiğini ayrıntılarıyla
bilmek istediğiniz durumlarda kullanışlıdır.</p>
<p>Bunu <code class="directive">LogLevel</code> y&ouml;nergesinde mod&uuml;l&uuml;n ismini
belirterek yapabilirsiniz:</p>
<div class="example"><p><code>
LogLevel info rewrite:trace5
</code></p></div>
<p>Bu satırla ana <code class="directive">LogLevel</code> info'ya ayarlanırken
<code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> i&ccedil;in musluk <code>trace5</code> seviyesine
kadar a&ccedil;ılmaktadır.</p>
<div class="note">Bu y&ouml;nerge, Apache HTTP Sunucusunun evvelki s&uuml;r&uuml;mlerinde mevcut olan
<code>RewriteLog</code> gibi g&uuml;nl&uuml;kleme mod&uuml;llerinin yerini almıştır.
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="accesslog">Erişim G&uuml;nl&uuml;ğ&uuml; <a title="Permanent link" href="#accesslog" class="permalink">&para;</a></h2>
<table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;nergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li></ul></td></tr></table>
<p>Sunucu erişim g&uuml;nl&uuml;ğ&uuml; sunucu tarafından işleme alınan t&uuml;m istekleri
kaydeder. Erişim g&uuml;nl&uuml;ğ&uuml;n&uuml;n yeri ve i&ccedil;eriği <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> y&ouml;nergesi ile belirlenir.
<code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> y&ouml;nergesi ile
g&uuml;nl&uuml;k i&ccedil;eriğini kişiselleştirmek m&uuml;mk&uuml;nd&uuml;r. Bu b&ouml;l&uuml;mde sunucunun
bilgileri erişim g&uuml;nl&uuml;ğ&uuml;ne kaydetmesi i&ccedil;in nasıl yapılandırılacağından
bahsedilecektir.</p>
<p>Ş&uuml;phesiz, bilginin erişim g&uuml;nl&uuml;ğ&uuml;nde saklanması g&uuml;nl&uuml;k y&ouml;netiminde ilk
adımı oluşturur. Sonraki adım yararlı istatistikleri &uuml;retmek i&ccedil;in bu
bilgiyi incelemektir. G&uuml;nl&uuml;k incelemesi bu belgenin kapsamına dahil
değildir ve aslında bu işlem sunucunun yaptığı işlerden biri değildir.
Bu konu ve g&uuml;nl&uuml;k incelemesi yapan uygulamalar hakkında daha ayrıntılı
bilgi edinmek i&ccedil;in <a href="http://dmoz.org/Computers/Software/Internet/Site_Management/Log_analysis/">dmoz.org</a>
bakınız.</p>
<p>Apache httpd'nin &ccedil;eşitli s&uuml;r&uuml;mlerinde erişim g&uuml;nl&uuml;klerini denetlemek
i&ccedil;in kullanılan diğer mod&uuml;ller ve y&ouml;nergeler arasında mod_log_referer,
mod_log_agent mod&uuml;lleri ve <code>TransferLog</code> y&ouml;nergesi
sayılabilir. Artık, daha eski t&uuml;m diğer y&ouml;nergelerin işlevselliklerini
bir araya toplayan <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> y&ouml;nergesi kullanılmaktadır.</p>
<p>Erişim g&uuml;nl&uuml;ğ&uuml;n&uuml;n girdi bi&ccedil;emi kolayca isteğe g&ouml;re
d&uuml;zenlenebilmektedir. Bi&ccedil;emi belirtmekte kullanılan bi&ccedil;em dizgesi, C
tarzı printf(1) bi&ccedil;em dizgesini andırır. Sonraki b&ouml;l&uuml;mlerde bazı
&ouml;rneklere yer verilmiştir. Bi&ccedil;em dizgesini oluşturan belirte&ccedil;lerin tam
listesi i&ccedil;in <code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code> belgesinin <a href="mod/mod_log_config.html#formats">G&uuml;nl&uuml;k Girdilerinin
Kişiselleştirilmesi</a> b&ouml;l&uuml;m&uuml;ne bakınız.</p>
<h3 id="common">Ortak G&uuml;nl&uuml;k Bi&ccedil;emi (OGB)</h3>
<p>Erişim g&uuml;nl&uuml;ğ&uuml; i&ccedil;in sıklıkla kullanılan bir yapılandırma:</p>
<div class="example"><p><code>
LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br>
CustomLog logs/access_log common
</code></p></div>
<p>İlk satırda belli bir bi&ccedil;em dizgesi i&ccedil;in <code>common</code> diye bir
<em>takma ad</em> tanımlanmaktadır. Bi&ccedil;em dizgesi, sunucuya hangi
belli bir bilgi par&ccedil;alarını g&uuml;nl&uuml;kleyeceğini s&ouml;yleyen % imli bi&ccedil;em
belirte&ccedil;lerinden oluşur. Bi&ccedil;em dizgesine ayrıca dizgesel sabitler de
yerleştirilebilir ve bunlar erişim g&uuml;nl&uuml;ğ&uuml;ne oldukları gibi
kopyalanırlar. Bi&ccedil;em dizgesi i&ccedil;inde &ccedil;ift tırnak karakteri (") bi&ccedil;em
dizgesini vaktinden &ouml;nce sonlandırmaması i&ccedil;in ters b&ouml;l&uuml; &ccedil;izgisi ile
&ouml;ncelenmelidir. Bi&ccedil;em dizgesi ayrıca, satır sonlarını belirtmek i&ccedil;in
"<code>\n</code>" ve sekmeleri belirtmek i&ccedil;in "<code>\t</code>"
denetim karakterlerini de i&ccedil;erebilir.</p>
<p><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> y&ouml;nergesi
evvelce tanımlanmış bir <em>takma adı</em> kullanarak yeni bir g&uuml;nl&uuml;k
dosyası tanımlar. Erişim g&uuml;nl&uuml;ğ&uuml;n&uuml;n dosya ismi b&ouml;l&uuml; &ccedil;izgisi ile
başlamadık&ccedil;a dosya yolunun <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> değerine g&ouml;reli olduğu varsayılır.</p>
<p>Yukarıdaki yapılandırma g&uuml;nl&uuml;k dosyasına girdileri Ortak G&uuml;nl&uuml;k
Bi&ccedil;emi (Common Log Format) adı verilen standart bi&ccedil;emde yazar.
Bu standart bi&ccedil;em başka HTTP sunucuları tarafından da kullanılır ve
&ccedil;oğu g&uuml;nl&uuml;k inceleme yazılımı tarafından tanınır. Ortak G&uuml;nl&uuml;k
Bi&ccedil;eminde &uuml;retilen g&uuml;nl&uuml;k girdileri ş&ouml;yle g&ouml;r&uuml;n&uuml;r:</p>
<div class="example"><p><code>
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
/apache_pb.gif HTTP/1.0" 200 2326
</code></p></div>
<p>Bu g&uuml;nl&uuml;k girdisini par&ccedil;a par&ccedil;a a&ccedil;ıklayalım:</p>
<dl>
<dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
<dd>Bu, sunucuya istek yapan istemcinin (uzak konağın) IP adresidir.
Eğer <code class="directive"><a href="./mod/core.html#hostnamelookups">HostnameLookups</a></code>
y&ouml;nergesine <code>On</code> değeri atanmışsa sunucu bu IP adresi
i&ccedil;in DNS sorgusu yapacak ve IP adresi yerine bulduğu konak ismini
yazmaya &ccedil;alışacaktır. Bununla birlikte, bu işlem sunucuyu epeyce
yavaşlattığından &ouml;nerilmemektedir. Konak isimlerini saptamak i&ccedil;in en
iyisi g&uuml;nl&uuml;k girdilerini <code class="program"><a href="./programs/logresolve.html">logresolve</a></code> gibi bir
g&uuml;nl&uuml;k işlemcisinden ge&ccedil;irmektir. Burada raporlanan IP adresi
doğrudan istemcinin IP adresi olmayabilir. Eğer sunucu ile istemci
arasında bir vekil sunucu varsa bu IP adresi, vekil sunucunun IP
adresi olacaktır.</dd>
<dt><code>-</code> (<code>%l</code>)</dt>
<dd>&Ccedil;ıktıdaki bir "tire" imi istenen bilgi par&ccedil;asının mevcut olmadığı
anlamına gelir. Bu durumda, mevcut olmayan bilgi istemci makine
&uuml;zerinde <code>identd</code> tarafından belirlenen istemcinin RFC
1413 kimliğidir. Bu bilgi olduk&ccedil;a g&uuml;venilmezdir ve sıkıca denetlenen
i&ccedil; ağlar haricinde hemen hemen asla kullanılmamalıdır. Apache,
<code class="directive"><a href="./mod/mod_ident.html#identitycheck">IdentityCheck</a></code> y&ouml;nergesine
<code>On</code> değeri atanmış olmadık&ccedil;a bu bilgiyi saptamaya
uğraşmaz.</dd>
<dt><code>frank</code> (<code>%u</code>)</dt>
<dd>Bu, belge isteğinde bulunan kişinin HTTP kimlik doğrulamasıyla
saptanan kullanıcı kimliğidir. Bu değer CGI betiklerine
<code>REMOTE_USER</code> ortam değişkeni ile sağlanır. Eğer istek
i&ccedil;in durum kodu 401 ise (aşağıya bakınız) hen&uuml;z kullanıcının kimliği
doğrulanmamış olacağından bu değere g&uuml;venilmemelidir. Eğer belge
parola korumalı değilse g&uuml;nl&uuml;ğ&uuml;n bu kısmı da yukarıdaki gibi
"<code>-</code>" olacaktır.</dd>
<dt><code>[10/Oct/2000:13:55:36 -0700]</code>
(<code>%t</code>)</dt>
<dd>İsteğin alındığı tarih ve saat. Bi&ccedil;emi ş&ouml;yledir:
<p class="indent">
<code>[g&uuml;n/ay/yıl:saat:dakika:saniye dilim]<br>
g&uuml;n&nbsp;&nbsp;&nbsp;&nbsp;= 2 hane<br>
ay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 3 harf<br>
yıl&nbsp;&nbsp;&nbsp;&nbsp;= 4 hane<br>
saat&nbsp;&nbsp;&nbsp;= 2 hane<br>
dakika = 2 hane<br>
saniye = 2 hane<br>
dilim&nbsp; = (`+' | `-') 4 hane</code>
</p>
<p>G&uuml;nl&uuml;k bi&ccedil;em dizgesinde zaman g&ouml;sterim bi&ccedil;emini
<code>%{<em>bi&ccedil;em</em>}t</code> şeklinde belirtmek de m&uuml;mk&uuml;nd&uuml;r.
Buradaki <code><em>bi&ccedil;em</em></code> dizgesi, stardart C
k&uuml;t&uuml;phanesindeki <code>strftime(3)</code> işlevi i&ccedil;in tanımlanmış
bi&ccedil;em belirte&ccedil;leriyle veya desteklenen &ouml;zel belirte&ccedil;lerle
oluşturulabilir. Ayrıntılı bilgi i&ccedil;in <code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code>
<a href="mod/mod_log_config.html#formats">bi&ccedil;em dizgelerine</a>
bakın.</p>
</dd>
<dt><code>"GET /apache_pb.gif HTTP/1.0"</code>
(<code>\"%r\"</code>)</dt>
<dd>İstemciden alınan istek satırının &ccedil;ift tırnaklar arasında
g&ouml;sterilmesi istenmiştir. İstek satırı en yararlı bilgi par&ccedil;alarını
i&ccedil;erir. Birincisi, istemci tarafından kullanılan y&ouml;ntem
<code>GET</code>'miş. İkinci olarak istemci
<code>/apache_pb.gif</code> dosyasını istemiş ve &uuml;&ccedil;&uuml;nc&uuml; olarak
istemci <code>HTTP/1.0</code> protokol&uuml;n&uuml; kullanmış. İstek satırının
bazı par&ccedil;alarını bağımsız olarak da g&uuml;nl&uuml;klemek m&uuml;mk&uuml;nd&uuml;r. &Ouml;rneğin,
"<code>%m %U%q %H</code>" dizgesi, y&ouml;ntem, yol, sorgu dizgesi ve
protokol&uuml; kaydedecektir; bu dizge "<code>%r</code>" bi&ccedil;em
belirtecinin tek başına yaptığı işi yapar.</dd>
<dt><code>200</code> (<code>%&gt;s</code>)</dt>
<dd>Bu, sunucunun istemciye g&ouml;nderdiği durum kodudur. İsteğin
başarıyla yerine getirilip getirilmediğini g&ouml;sterdiği i&ccedil;in bu bilgi
&ccedil;ok değerlidir. Durum kodu 2 ile başlıyorsa istek başarıyla yerine
getirilmiştir, 3 ile başlıyorsa y&ouml;nlendirilmiştir, 4 ile başlıyorsa
istemci tarafında bir hata oluşmuştur, 5 ile başlıyorsa sunucuda bir
hata oluşmuştur. Olası hata kodlarının tam listesi <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">RFC2616 Hiper
Metin Aktarım Protokol&uuml;</a>n&uuml;n 10. b&ouml;l&uuml;m&uuml;nde bulunabilir.</dd>
<dt><code>2326</code> (<code>%b</code>)</dt>
<dd>Son par&ccedil;a istemciye d&ouml;nd&uuml;r&uuml;len nesnenin yanıt başlığı hari&ccedil;
uzunluğudur. Eğer istemciye bir i&ccedil;erik d&ouml;nd&uuml;r&uuml;lmemişse bu değer
"<code>-</code>" olacaktır. Bunun yerine g&uuml;nl&uuml;ğe "<code>0</code>"
yazdırmak i&ccedil;in <code>%B</code> belirtecini kullanınız.</dd>
</dl>
<h3 id="combined">Birleşik G&uuml;nl&uuml;k Bi&ccedil;emi</h3>
<p>Sıklıkla kullanılan diğer bir bi&ccedil;em dizgesi Birleşik G&uuml;nl&uuml;k Bi&ccedil;emi
(Combined Log Format) olup ş&ouml;yle kullanılabilir:</p>
<div class="example"><p><code>
LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
\"%{User-agent}i\"" combined<br>
CustomLog log/access_log combined
</code></p></div>
<p>Bu bi&ccedil;em ilaveten 2 alan i&ccedil;ermesi dışında Ortak G&uuml;nl&uuml;k Bi&ccedil;emi ile
aynıdır. İlave alanların ikisi de <code>%{<em>başlık</em>}i</code>
bi&ccedil;eminde olup buradaki <code><em>başlık</em></code>, HTTP isteğindeki
başlık alanlarından biridir. Bu bi&ccedil;emin kullanıldığı bir erişim
g&uuml;nl&uuml;ğ&uuml; girdisi ş&ouml;yle olurdu:</p>
<div class="example"><p><code>
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
/apache_pb.gif HTTP/1.0" 200 2326
"http://www.example.com/start.html" "Mozilla/4.08 [en]
(Win98; I ;Nav)"
</code></p></div>
<p>Ek alanlar:</p>
<dl>
<dt><code>"http://www.example.com/start.html"</code>
(<code>\"%{Referer}i\"</code>)</dt>
<dd>HTTP istek başlığı "Referer". İstemcinin raporladığı isteğin
kaynaklandığı URI. (Bu isteğin yapılmasını sağlayan bağlantıyı
i&ccedil;eren URL veya istek bir sayfanın bileşenleri ile ilgiliyse istenen
sayfanın URL'si olabilir.)</dd>
<dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
(<code>\"%{User-agent}i\"</code>)</dt>
<dd>Tarayıcı kimliğini i&ccedil;eren HTTP istek başlığı. Bu istemcinin
tarayıcısının raporladığı kendi tanıtım bilgisidir.</dd>
</dl>
<h3 id="multiple">&Ccedil;ok Sayıda Erişim G&uuml;nl&uuml;ğ&uuml;</h3>
<p>Yapılandırma dosyasında &ccedil;ok sayıda <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> y&ouml;nergesi kullanarak &ccedil;ok
sayıda erişim g&uuml;nl&uuml;ğ&uuml; kolayca oluşturulabilir. &Ouml;rneğin aşağıdaki
y&ouml;nergelerle 3 tane erişim g&uuml;nl&uuml;ğ&uuml; oluşturulacaktır. İlki temel OGB
bilgisini i&ccedil;erirken diğer ikisi isteğin kaynaklandığı yeri ve tarayıcı
kimliğini i&ccedil;erir. Son iki <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> satırı ayrıca, <code>ReferLog</code> ve
<code>AgentLog</code> y&ouml;nergelerinin etkilerinin nasıl taklit
edileceğini de g&ouml;stermektedir.</p>
<div class="example"><p><code>
LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br>
CustomLog logs/access_log common<br>
CustomLog logs/referer_log "%{Referer}i -&gt; %U"<br>
CustomLog logs/agent_log "%{User-agent}i"
</code></p></div>
<p>Bu &ouml;rnek ayrıca, <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> y&ouml;nergesi ile bir takma ad tanımlamanın şart
olmadığını da g&ouml;stermektedir. G&uuml;nl&uuml;k bi&ccedil;emi doğrudan <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> y&ouml;nergesinde
belirtilebilir.</p>
<h3 id="conditional">Şarta Bağlı G&uuml;nl&uuml;kler</h3>
<p>Bazı durumlarda istemcinin yaptığı isteğe bağlı olarak erişim
g&uuml;nl&uuml;ğ&uuml;nde belli girdilerin dışlanması gerekebilir. Bu, <a href="env.html">ortam değişkenleri</a> sayesinde kolayca yerine
getirilebilir. &Ouml;nce isteğin belli koşulları sağladığını belirten bir
ortam değişkeni ataması yapılır. Bu işlem <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> y&ouml;nergesi ile yapılır.
Sonra da, ortam değişkenine bağlı olarak isteklerin g&uuml;nl&uuml;ğe dahil
edilip edilmeyeceği <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> y&ouml;nergesinin
<code>env=</code> deyimi kullanılarak belirtilir. Bazı &ouml;rnekler:</p>
<div class="example"><p><code>
# yerel konaktan kaynaklanan istekleri imleyelim<br>
SetEnvIf Remote_Addr "127\.0\.0\.1" kaydetme<br>
# robots.txt dosyası isteklerini imleyelim<br>
SetEnvIf Request_URI "^/robots\.txt$" kaydetme<br>
# Kalanları g&uuml;nl&uuml;ğe kaydedelim<br>
CustomLog logs/access_log common env=!kaydetme
</code></p></div>
<p>Başka bir &ouml;rnek olarak, T&uuml;rk&ccedil;e belge isteklerini bir dosyaya diğer
dillerdeki istekleri başka bir dosyaya kaydedelim.</p>
<div class="example"><p><code>
SetEnvIf Accept-Language "tr" turkce<br>
CustomLog logs/turkce_log common env=turkce<br>
CustomLog logs/diger_diller_log common env=!turkce
</code></p></div>
<p>Bir arabellkleme senaryosuna arabelleğin verimli kullanılıp
kullanılmadığını bilmek isteyelim. Bu basit&ccedil;e ş&ouml;yle yapılabilir:</p>
<div class="example"><p><code>
SetEnv CACHE_MISS 1<br>
LogFormat "%h %l %u %t "%r " %&gt;s %b %{CACHE_MISS}e" common-cache<br>
CustomLog logs/access_log common-cache
</code></p></div>
<p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> &ouml;nce <code class="module"><a href="./mod/mod_env.html">mod_env</a></code> mod&uuml;l&uuml;n&uuml;
&ccedil;alıştıracak ve başarılı olunduğu takdirde i&ccedil;eriği onsuz teslim
edecektir. Bu durumda arabellek kaybı <code>1</code> olarak
g&uuml;nl&uuml;klenirken arabellek sunumu <code>-</code> olarak
g&uuml;nl&uuml;klenecektir.</p>
<p><code>env=</code> s&ouml;zdizimine ek olarak, <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> HTTP yanıt kodudaki koşul
değerlerini g&uuml;nl&uuml;klemeyi de destekler:</p>
<div class="example"><p><code>
LogFormat "%400,501{User-agent}i" browserlog<br>
LogFormat "%!200,304,302{Referer}i" refererlog
</code></p></div>
<p>Bu &ouml;rnekte, HTTP durum kodu 400 veya 501 ise <code>User-agent</code>
başlığı g&uuml;nl&uuml;klenecektir. Aksi takdirde, g&uuml;nl&uuml;ğe bir "-" yazılacaktır.
Benzer şekilde ikinci &ouml;rnekte, HTTP durum kodu 200, 204 veya 302
<strong>değilse</strong> (durum kodlarının &ouml;ncesindeki "!" imine
dikkat) <code>Referer</code> başlığı g&uuml;nl&uuml;klenecektir.</p>
<p>Koşulaa bağlı g&uuml;nl&uuml;k kaydının &ccedil;ok esnek ve g&uuml;&ccedil;l&uuml; olabileceğini
g&ouml;stermiş olsak da g&uuml;nl&uuml;k i&ccedil;eriğini denetlemenin tek yolu bu değildir.
G&uuml;nl&uuml;k dosyaları sunucu etkinliğini eksiksiz olarak kaydedebildikleri
takdirde daha yararlı olurlar. G&uuml;nl&uuml;k dosyalarını sonradan işleme tabi
tutarak istenmeyen girdileri kaldırılmış bir kopya almak hem kolay hem
de daha yararlıdır.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="rotation">G&uuml;nl&uuml;k &Ccedil;evrimi <a title="Permanent link" href="#rotation" class="permalink">&para;</a></h2>
<p>Y&uuml;k&uuml; ağır sunucularda g&uuml;nl&uuml;k dosyalarına kaydedilen bilginin miktarı
&ccedil;ok b&uuml;y&uuml;k boyutlara ulaşabilir. 10.000 istek i&ccedil;eren bir erişim g&uuml;nl&uuml;ğ&uuml;
yaklaşık 1MB yer kaplar. Etkin g&uuml;nl&uuml;k dosyasını belirli aralıklarla
değiştirmek veya silmek gerekebilir. Apache httpd &ccedil;alışırken dosyayı s&uuml;rekli
a&ccedil;ık tuttuğu ve yazdığı i&ccedil;in bu işlem sunucu &ccedil;alışırken yapılamaz. Bu
bakımdan, g&uuml;nl&uuml;k dosyası değiştirildikten veya silindikten sonra yeni
dosyanın a&ccedil;ılması i&ccedil;in <a href="stopping.html">sunucunun yeniden
başlatılması</a> gerekir.</p>
<p><a href="stopping.html#graceful">Nazik&ccedil;e yeniden başlatmak</a>
suretiyle sunucunun, mevcut ve bekleyen bağlantıları kaybetmeden yeni
g&uuml;nl&uuml;k dosyalarını a&ccedil;ması sağlanabilir. Bununla birlikte, bu işlem
sırasında sunucunun eski isteklere sunumu bitirene kadar eski g&uuml;nl&uuml;k
dosyalarına yazmaya devam edebilmesi gerekir. Bu bakımdan, yeniden
başlatmanın ardından eski g&uuml;nl&uuml;k dosyaları &uuml;zerinde bir işlem yapmadan
&ouml;nce biraz beklemek gerekir. G&uuml;nl&uuml;k dosyalarını d&ouml;nd&uuml;r&uuml;rken kullanılan
senaryolarda genellikle eski g&uuml;nl&uuml;k dosyaları yer kazanmak i&ccedil;in
sıkıştırılırlar:</p>
<div class="example"><p><code>
mv access_log access_log.old<br>
mv error_log error_log.old<br>
apachectl graceful<br>
sleep 600<br>
gzip access_log.old error_log.old
</code></p></div>
<p>G&uuml;nl&uuml;k &ccedil;evrimi yapmanın başka bir yolu da sonraki b&ouml;l&uuml;mde a&ccedil;ıklandığı
gibi <a href="#piped">borulu g&uuml;nl&uuml;kler</a> kullanmaktır.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="piped">Borulu G&uuml;nl&uuml;kler <a title="Permanent link" href="#piped" class="permalink">&para;</a></h2>
<p>Apache httpd hata ve erişim g&uuml;nl&uuml;klerini doğrudan bir dosyaya yazmak
yerine bir boru &uuml;zerinden başka bir s&uuml;rece yazabilir. Bu yetenek ana
sunucuya herhangi bir kod eklemeksizin g&uuml;nl&uuml;kleme esnekliğini şaşırtıcı
derecede arttırır. G&uuml;nl&uuml;kler boruya yazılmak istenirse dosya ismini boru
karakteriyle ("<code>|</code>") değiştirip ardına g&uuml;nl&uuml;k girdilerini
standart girdisinden kabul edecek programın ismini eklemek yeterlidir.
Apache httpd başlatıldığı zaman borulu g&uuml;nl&uuml;k işlemini de
başlatacaktır. Eğer sunucu &ccedil;alışırken g&uuml;nl&uuml;kleri kabul eden s&uuml;re&ccedil;
&ccedil;&ouml;kerse Apache httpd bu programı yeniden başlatır. (Bu son &ouml;zelliği
sebebiyle bu tekniğe "g&uuml;venilir borulu g&uuml;nl&uuml;kleme" adını veriyoruz.)</p>
<p>Borulu g&uuml;nl&uuml;k s&uuml;re&ccedil;leri ana Apache httpd s&uuml;reci tarafından başlatılır
ve bu s&uuml;re&ccedil;ler ana Apache httpd s&uuml;recinin kullanıcı kimliğini miras
alırlar. Yani borulu g&uuml;nl&uuml;kleme programları aslında root tarafından
&ccedil;alıştırılmış gibi olur. Bu bakımdan, bu programları basit ve g&uuml;venilir
kılmak &ccedil;ok &ouml;nemlidir.</p>
<p>Borulu g&uuml;nl&uuml;klerin &ouml;nemli kullanım alanlarından biri de sunucuyu
yeniden başlatmak gerekmeksizin g&uuml;nl&uuml;k &ccedil;evrimini m&uuml;mk&uuml;n kılmaktır.
Apache HTTP sunucusu bu ama&ccedil;la kullanılmak &uuml;zere
<code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code> diye bir program i&ccedil;erir. &Ouml;rneğin,
g&uuml;nl&uuml;kleri 24 saatte bir d&ouml;nd&uuml;rmek isterseniz bunu ş&ouml;yle
yapabilirsiniz:</p>
<div class="example"><p><code>
CustomLog "|/usr/local/apache/bin/rotatelogs
/var/log/access_log 86400" common
</code></p></div>
<p>Borunun diğer ucundaki s&uuml;reci başlatacak komutun tırnak i&ccedil;ine
alındığına dikkat ediniz. Bu &ouml;rnekler erişim g&uuml;nl&uuml;ğ&uuml; i&ccedil;in verilmişse de
aynı teknik hata g&uuml;nl&uuml;ğ&uuml; i&ccedil;in de kullanılabilir.</p>
<p>Hari&ccedil;ten bir uygulama olarak <a href="http://www.cronolog.org/">cronolog</a> isminde buna benzer ancak
&ccedil;ok daha esnek bir program daha vardır.</p>
<p>Borulu g&uuml;nl&uuml;kler de şarta bağlı g&uuml;nl&uuml;kleme kadar g&uuml;&ccedil;l&uuml; olmakla beraber
&ccedil;evrimdışı ardıl işlemler gibi daha basit &ccedil;&ouml;z&uuml;mler i&ccedil;in
kullanılmamalıdır.</p>
<p>&Ouml;ntanımlı olarak borulu g&uuml;nl&uuml;k s&uuml;reci bir kabuk kullanmadan
&ccedil;alıştırılır. Kabuk kullanarak (genelde <code>/bin/sh -c</code> ile)
yapılmak istenirse "<code>|</code>" yerine "<code>|$</code>"
kullanılır:</p>
<div class="example"><p><code>
# Kabu kullanarak "rotatelogs" &ccedil;alıştırmak<br>
CustomLog "|$/usr/local/apache/bin/rotatelogs
/var/log/access_log 86400" common
</code></p></div>
<p>Bu, Apache 2.2 i&ccedil;in &ouml;ntanımlı davranıştı. Kabuk &ouml;zelliklerine bağlı
olarak, yeniden başlatma sırasındaki sinyal işleme sorunları ve g&uuml;nl&uuml;k
borulama uygulamasının yaşam s&uuml;resi i&ccedil;in ek bir kabuk s&uuml;reci ile
sonu&ccedil;lanabilir. Apache 2.2 ile uyumluluk a&ccedil;ısından "<code>||</code>"
g&ouml;sterimi de desteklenmekte olup "<code>|</code>" kullanımına
eşdeğerdir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="virtualhost">Sanal Konaklar <a title="Permanent link" href="#virtualhost" class="permalink">&para;</a></h2>
<p>Bir sunucu &ccedil;ok sayıda <a href="vhosts/">sanal konak</a> ile hizmet
sunarken bunların g&uuml;nl&uuml;k kayıtları i&ccedil;in &ccedil;eşitli se&ccedil;enekler mevcuttur.
İlk se&ccedil;enekte, sanki sunucu tek bir konakla hizmet sunuyormuş gibi
g&uuml;nl&uuml;k kaydı yapılır. G&uuml;nl&uuml;kleme y&ouml;nergelerini <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> b&ouml;l&uuml;mlerinin dışına, ana sunucu
bağlamına yerleştirerek t&uuml;m isteklerin aynı erişim ve hata g&uuml;nl&uuml;ğ&uuml;ne
yazılmasını sağlamak olasıdır. Bu teknik, tek tek sanal konaklar i&ccedil;in
kolayca istatistik toplamaya izin vermez.</p>
<p>Eğer <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>
veya <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> y&ouml;nergesi bir
<code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> b&ouml;l&uuml;m&uuml;ne
yerleştirilirse bu sanal konağa b&uuml;t&uuml;n erişimler veya hatalar belirtilen
dosyaya g&uuml;nl&uuml;klenecektir. B&ouml;yle g&uuml;nl&uuml;kleme y&ouml;nergeleri i&ccedil;ermeyen sanal
konakların g&uuml;nl&uuml;kleri hala ana sunucunun hata ve erişim g&uuml;nl&uuml;klerine
yazılmaya devam edecektir. Bu teknik az sayıda sanal konak barındıran
sunucular i&ccedil;in &ccedil;ok kullanışlıdır. Fakat sanal konak sayısı &ccedil;ok fazlaysa
bu teknikle g&uuml;nl&uuml;k dosyalarını y&ouml;netmek &ccedil;ok karmaşık bir hal alabilir.
Ayrıca, <a href="vhosts/fd-limits.html">yetersiz dosya tanıtıcısı</a>
sorunlarıyla &ccedil;ok sık karşılaşılabilir.</p>
<p>Erişim g&uuml;nl&uuml;kleri i&ccedil;in &ccedil;ok az bir fedakarlıkla &ccedil;ok iyi bir &ccedil;&ouml;z&uuml;m vardır.
G&uuml;nl&uuml;k bi&ccedil;emine sanal konaklarla ilgili bilgi eklemek suretiyle t&uuml;m
konakların aynı g&uuml;nl&uuml;k dosyasını kullanmaları olasıdır. B&ouml;ylece g&uuml;nl&uuml;k
dosyası sonradan her sanal konak i&ccedil;in ayrı bir dosya oluşturmak &uuml;zere
ayrıştırılabilir. &Ouml;rneğin, bu işlem i&ccedil;in şu y&ouml;nergeler kullanılıyor
olsun:</p>
<div class="example"><p><code>
LogFormat "%v %l %u %t \"%r\" %&gt;s %b"
ortaksankon<br>
CustomLog logs/access_log ortaksankon
</code></p></div>
<p><code>%v</code> belirteci isteği sunan sanal konağın ismini g&uuml;nl&uuml;ğe
yazmak i&ccedil;in kullanılır. Daha sonra <a href="programs/other.html">split-logfile</a> gibi bir program
kullanarak, bu dosyadan her sanal konak i&ccedil;in ayrı birer dosya elde
edilebilir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="other">Diğer G&uuml;nl&uuml;k Dosyaları <a title="Permanent link" href="#other" class="permalink">&para;</a></h2>
<table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;nergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#bufferedlogs">BufferedLogs</a></code></li><li><code class="directive"><a href="./mod/mod_log_forensic.html#forensiclog">ForensicLog</a></code></li><li><code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptloglength">ScriptLogLength</a></code></li></ul></td></tr></table>
<h3>G&ouml;nderilen ve alınan bayt sayısının g&uuml;nl&uuml;klenmesi</h3>
<p><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code> mod&uuml;l&uuml; <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> y&ouml;nergesinde kullanılan
bi&ccedil;em belirte&ccedil;lerine alınan ve g&ouml;nderilen bayt sayıları i&ccedil;in iki
belirte&ccedil; (%I ve %O) ekler.</p>
<h3>Adli G&uuml;nl&uuml;k</h3>
<p><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code> mod&uuml;l&uuml; istemci isteklerinin kanıt
olarak kullanılmak amacıyla g&uuml;nl&uuml;klenmesini sağlar. G&uuml;nl&uuml;kleme her
istek i&ccedil;in isteğe hizmet sunmadan &ouml;nce ve sonra olmak &uuml;zere iki defa
yapılır. B&ouml;ylece g&uuml;nl&uuml;k dosyasında başarılı her istek i&ccedil;in iki satır
bulunur. Adli g&uuml;nl&uuml;kleme &ccedil;ok sıkı kurallara tabi olup
kişiselleştirilemez. G&uuml;venlik ve hata ayıklama aracı olarak yararlı
değildir.</p>
<h3 id="pidfile">PID Dosyası</h3>
<p>Apache httpd başlatıldığında, ana httpd s&uuml;recinin kimliği (PID)
<code>logs/httpd.pid</code> dosyasına kaydedilir. Bu dosyanın ismi
<code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> y&ouml;nergesi ile
değiştirilebilir. Bu s&uuml;re&ccedil; kimliği sistem y&ouml;neticisi tarafından ana
s&uuml;rece sinyal g&ouml;ndererek artalan s&uuml;recini sonlandırmak veya yeniden
başlatmak i&ccedil;in kullanılır. Windows &uuml;zerinde bu işlem i&ccedil;in
<code>-k</code> komut satırı se&ccedil;eneği kullanılır. Bu konuda daha
ayrıntılı bilgi edinmek i&ccedil;in <a href="stopping.html">Durdurma ve
Yeniden Başlatma</a> belgesine bakınız.</p>
<h3 id="scriptlog">Betik G&uuml;nl&uuml;ğ&uuml;</h3>
<p><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code> y&ouml;nergesi CGI
betiklerinin girdi ve &ccedil;ıktılarını kaydetmenizi m&uuml;mk&uuml;n kılmak suretiyle
hata ayıklamaya yardımcı olur. Bu sadece deneysel ama&ccedil;la kullanılmalı,
asıl sunucuya uygulanmamalıdır. <a href="mod/mod_cgi.html">mod_cgi</a>
belgesinde daha fazla bilgi bulunabilir.</p>
</div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/logs.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/logs.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> adı altında lisanslıdır.</p>
<p class="menu"><a href="./mod/">Mod&uuml;ller</a> | <a href="./mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
document.body.appendChild(qv);
var qvBtn = document.createElement('button');
qvBtn.className = 'qv-toggle';
qvBtn.setAttribute('aria-label', 'Toggle page navigation');
qvBtn.innerHTML = '&#9776;';
document.body.appendChild(qvBtn);
qvBtn.addEventListener('click', function() {
var isOpen = qv.classList.toggle('open');
if (isOpen) {
qv.style.top = window.scrollY + 10 + 'px';
}
});
window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>