1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>Günlük Dosyaları - Apache HTTP Sunucusu</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<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" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body id="manual-page"><div id="page-header">
17<p class="menu"><a href="/mod/">Modüller</a> | <a href="/mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="/glossary.html">Terimler</a> | <a href="/sitemap.html">Site Haritası</a></p>
18<p class="apache">Apache HTTP Sunucusu Sürüm 2.4</p>
19<img alt="" src="/images/feather.gif" /></div>
20<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">Sürüm 2.4</a></div><div id="page-content"><div id="preamble"><h1>Günlük Dosyaları</h1>
23<div class="toplang">
24<p><span>Mevcut Diller: </span><a href="/en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25<a href="/fr/logs.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
26<a href="/ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
27<a href="/ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28<a href="/tr/logs.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
29</div>
30
31    <p>Bir HTTP sunucusunu verimli şekilde yönetebilmek için oluşabilecek
32      sorunlardan başka sunucunun başarımı ve etkinliği hakkında da bazı geri
33      bildirimler almak gerekir. Apache HTTP Sunucusu çok kapsamlı ve esnek
34      bir günlükleme yeteneğine sahiptir. Bu belgede sunucunun günlükleme
35      yeteneğini nasıl yapılandıracağınızdan ve günlük kayıtlarını nasıl
36      yorumlayacağınızdan bahsedilecektir.</p>
37  </div>
38<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#overview">Giriş</a></li>
39<li><img alt="" src="/images/down.gif" /> <a href="#security">Güvenlik Uyarısı</a></li>
40<li><img alt="" src="/images/down.gif" /> <a href="#errorlog">Hata Günlüğü</a></li>
41<li><img alt="" src="/images/down.gif" /> <a href="#permodule">Modüllere göre günlükleme</a></li>
42<li><img alt="" src="/images/down.gif" /> <a href="#accesslog">Erişim Günlüğü</a></li>
43<li><img alt="" src="/images/down.gif" /> <a href="#rotation">Günlük Çevrimi</a></li>
44<li><img alt="" src="/images/down.gif" /> <a href="#piped">Borulu Günlükler</a></li>
45<li><img alt="" src="/images/down.gif" /> <a href="#virtualhost">Sanal Konaklar</a></li>
46<li><img alt="" src="/images/down.gif" /> <a href="#other">Diğer Günlük Dosyaları</a></li>
47</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
48<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
49<div class="section">
50<h2><a name="overview" id="overview">Giriş</a></h2>
51    
52
53  <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yö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 /></tr></table>
54
55  <p>Apache HTTP Sunucusu, isteğin ilk alınışından itibaren, URL eşleme
56    işlemleri, bağlantının son çözümlemesi ve bu işlemler sırasına ortaya çıkan
57    hatalar da dahil olmak üzere sunucunuzda meydana gelen herşeyi günlüklemek
58    için çok çeşitli mekanizmalar içerir. Buna ek olarak, günlükleme
59    yetenekleri sağlayan üçüncü parti modüller de kullanılabilir veya mevcut
60    günlük dosyalarına girdiler enjekte edilebilir. Ayrıca, CGI programları,
61    PHP betikleri ve benzerleri sunucu hata günlüğüne kendi iletilerini
62    gönderebilirler.</p>
63
64  <p>Bu belgede Apache HTTP Sunucusunun standart parçası olan günlükleme
65    modülleri hakkında bilgi verilecektir.</p>
66
67  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
68<div class="section">
69<h2><a name="security" id="security">Güvenlik Uyarısı</a></h2>
70    
71
72    <p>Apache httpd’nin günlük dosyalarını yazdığı dizine yazabilen birinin sunucuyu
73      başlatan kullanıcı kimliğine (bu genellikle root olur) erişim
74      kazanabileceğine hemen hemen kesin gözüyle bakılabilir. Sonuçlarının
75      neler olacağını kestiremiyorsanız günlüklerin yazıldığı dizinde <em>hiç
76      kimseye</em> yazma erişimi vermeyin; ayrıntılı bilgi için <a href="misc/security_tips.html">güvenlik ipuçları</a> belgesine
77      bakınız.</p>
78
79    <p>Buna ilaveten, günlük dosyaları istemci tarafından sağlanmış bilgiler
80      de içerebilir. Bu nedenle, kötü niyetli istemcilerin günlük dosyalarına
81      denetim karakterleri girmeleri olasılığına karşı ham günlükler ele
82      alınırken dikkatli olunmalıdır.</p>
83  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
84<div class="section">
85<h2><a name="errorlog" id="errorlog">Hata Günlüğü</a></h2>
86    
87    <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yö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>
88
89    <p>İsmi ve yeri <code class="directive"><a href="/mod/core.html#errorlog">ErrorLog</a></code> yönergesi
90      ile belirtilen sunucu hata günlüğü, en önemli günlük dosyasıdır. Apache
91      httpd tarafından istekler işlenirken saptanan hatalar ve tanı bilgileri
92      bu dosyaya gönderilir. Sunucuyu başlatırken veya sunucu çalışırken bir
93      sorunla karşılaşıldığında, neyin yanlış gittiğini öğrenmek için
94      bakılacak ilk yer burasıdır. Günlük kaydı çoğunlukla sorunun nasıl
95      düzeltileceği ile ilgili ayrıntıları da içerir.</p>
96
97    <p>Hata günlüğü normal olarak bir dosyaya yazılır (genellikle, dosyanın
98      ismi Unix sistemlerinde <code>error_log</code>, OS/2 ve Windows’ta ise
99      <code>error.log</code>’dur). Ayrıca, Unix sistemlerinde sunucunun
100      hataları <code>syslog</code>’a veya <a href="#piped">borulamak suretiyle
101      bir programa</a> aktarması da mümkündür.</p>
102
103    <p>Hata günlüğünün biçemi <code class="directive"><a href="/mod/core.html#errorlogformat">ErrorLogFormat</a></code> yönergesi ile belirlenir. Bu yönergeyi
104      kullanarak günlüklenen değerleri özelleştirebilirsiniz. Bir biçem
105      belirtmezseniz öntanımlı biçem kullanılır. Örnek tipik bir hata iletisi
106      içermektedir:</p>
107
108    <div class="example"><p><code>
109    [Fri Sep 09 10:42:29.902022 2011] [core:error] [pid 35708:tid 4328636416]
110    [client 72.15.99.187] Dosya yok: /usr/local/apache2/htdocs/favicon.ico
111    </code></p></div>
112
113    <p>Günlük girdisinin ilk öğesi iletinin yazıldığı tarih ve saatten oluşur.
114      İkincisi iletiyi üreten modülün ismi (bu durumda: core) ile raporlanan
115      bilginin önem derecesini belirtir. Bunu varsa sürecin kimliği ve yine
116      varsa evre kimliği izler. Sonraki öğe hatanın üretilmesine sebep olan
117      istemcinin IP adresini içerir. Kalanı iletinin kendisidir (duruma
118      bakılırsa bir dosyaya yapılan istek yerine getirilememiş).</p>
119
120    <p>Hata günlüğünde görünebilecek ileti çeşitliliği oldukça fazladır. Çoğu
121      yukarıdaki örneğin benzeridir. Hata günlüğü ayrıca, CGI betiklerinin
122      hata ayıklama çıktılarını da içerir. Bir CGI betiği tarafından standart
123      hataya (<code>stderr</code>) yazılan her türlü bilgi doğrudan hata
124      günlüğüne kopyalanır.</p>
125
126    <p>Hata günlüğüne ve erişim günlüğüne  <code>%L</code> dizgeciği konularak
127      erişim günlüğündeki girdi ile hata günlüğündeki girdiyi ilişkilendirecek
128      bir günlük girdisi kimliği oluşturulabilir.
129      <code class="module"><a href="/mod/mod_unique_id.html">mod_unique_id</a></code> yüklüyse günlük girdisi kimliği olarak
130      onun eşsiz istek kimliği de kullanılır.</p>
131
132    <p>Sunucuyu denerken olası sorunlara karşı hata günlüğünü sürekli
133      izlemelisiniz. Unix sistemlerinde bunu şöyle bir komutla
134      sağlayabilirsiniz:</p>
135
136    <div class="example"><p><code>
137      tail -f error_log
138    </code></p></div>
139  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
140<div class="section">
141<h2><a name="permodule" id="permodule">Modüllere göre günlükleme</a></h2>
142    
143
144    <p><code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> yönergesi, günlük
145      iletisinin üretilmesine sebep olan modüle bağlı bir önem seviyesi
146      belirleyebilmenizi sağlar. Bu yolla sorun yaşadığınız modülle ilgili
147      günlük musluklarını sonuna kadar açabiliri ek olarak ilgilendiğiniz diğer
148      modüllerle ilgili ayrıntıları da edinebilirsiniz. Özellikle
149      <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
150      modüllerde yapılmak isteneni denerken neler olup bittiğini ayrıntılarıyla
151      bilmek istediğiniz durumlarda kullanışlıdır.</p>
152
153    <p>Bunu <code class="directive">LogLevel</code> yönergesinde modülün ismini
154      belirterek yapabilirsiniz:</p>
155
156    <pre class="prettyprint lang-config">LogLevel info rewrite:trace5</pre>
157
158
159    <p>Bu satırla ana <code class="directive">LogLevel</code> info'ya ayarlanırken
160      <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> için musluk <code>trace5</code> seviyesine
161      kadar açılmaktadır.</p>
162
163    <div class="note">Bu yönerge, Apache HTTP Sunucusunun evvelki sürümlerinde mevcut olan
164      <code>RewriteLog</code> gibi günlükleme modüllerinin yerini almıştır.
165    </div>
166  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
167<div class="section">
168<h2><a name="accesslog" id="accesslog">Erişim Günlüğü</a></h2>
169    
170
171    <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yö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>
172
173    <p>Sunucu erişim günlüğü sunucu tarafından işleme alınan tüm istekleri
174      kaydeder. Erişim günlüğünün yeri ve içeriği  <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi ile belirlenir.
175      <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesi ile
176      günlük içeriğini kişiselleştirmek mümkündür. Bu bölümde sunucunun
177      bilgileri erişim günlüğüne kaydetmesi için nasıl yapılandırılacağından
178      bahsedilecektir.</p>
179
180    <p>Şüphesiz, bilginin erişim günlüğünde saklanması günlük yönetiminde ilk
181      adımı oluşturur.  Sonraki adım yararlı istatistikleri üretmek için bu
182      bilgiyi incelemektir. Günlük incelemesi bu belgenin kapsamına dahil
183      değildir ve aslında bu işlem sunucunun yaptığı işlerden biri değildir.
184      Bu konu ve günlük incelemesi yapan uygulamalar hakkında daha ayrıntılı
185      bilgi edinmek için <a href="http://dmoz.org/Computers/Software/Internet/Site_Management/Log_analysis/">dmoz.org</a> veya <a href="http://dir.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/Log_Analysis_Tools/">Yahoo</a>’ya bakınız.</p>
186
187    <p>Apache httpd’nin çeşitli sürümlerinde erişim günlüklerini denetlemek
188      için kullanılan diğer modüller ve yönergeler arasında mod_log_referer,
189      mod_log_agent modülleri ve <code>TransferLog</code> yönergesi
190      sayılabilir. Artık, daha eski tüm diğer yönergelerin işlevselliklerini
191      bir araya toplayan <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi kullanılmaktadır.</p>
192
193    <p>Erişim günlüğünün girdi biçemi kolayca isteğe göre
194      düzenlenebilmektedir. Biçemi belirtmekte kullanılan biçem dizgesi, C
195      tarzı printf(1) biçem dizgesini andırır. Sonraki bölümlerde bazı
196      örneklere yer verilmiştir. Biçem dizgesini oluşturan belirteçlerin tam
197      listesi iç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ünlük Girdilerinin
198      Kişiselleştirilmesi</a> bölümüne bakınız.</p>
199
200    <h3><a name="common" id="common">Ortak Günlük Biçemi (OGB)</a></h3>
201      
202
203      <p>Erişim günlüğü için sıklıkla kullanılan bir yapılandırma:</p>
204
205      <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
206CustomLog logs/access_log common</pre>
207
208
209      <p>İlk satırda belli bir biçem dizgesi için <code>common</code> diye bir
210        <em>takma ad</em> tanımlanmaktadır. Biçem dizgesi, sunucuya hangi
211        belli bir bilgi parçalarını günlükleyeceğini söyleyen % imli biçem
212        belirteçlerinden oluşur. Biçem dizgesine ayrıca dizgesel sabitler de
213        yerleştirilebilir ve bunlar erişim günlüğüne oldukları gibi
214        kopyalanırlar. Biçem dizgesi içinde çift tırnak karakteri (") biçem
215        dizgesini vaktinden önce sonlandırmaması için ters bölü çizgisi ile
216        öncelenmelidir. Biçem dizgesi ayrıca, satır sonlarını belirtmek için
217        "<code>\n</code>" ve sekmeleri belirtmek için "<code>\t</code>"
218        denetim karakterlerini de içerebilir.</p>
219
220      <p><code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi
221        evvelce tanımlanmış bir <em>takma adı</em> kullanarak yeni bir günlük
222        dosyası tanımlar. Erişim günlüğünün dosya ismi bölü çizgisi ile
223        başlamadıkça dosya yolunun <code class="directive"><a href="/mod/core.html#serverroot">ServerRoot</a></code> değerine göreli olduğu varsayılır.</p>
224
225      <p>Yukarıdaki yapılandırma günlük dosyasına girdileri Ortak Günlük
226        Biçemi (Common Log Format) adı verilen standart biçemde yazar.
227        Bu standart biçem başka HTTP sunucuları tarafından da kullanılır ve
228        çoğu günlük inceleme yazılımı tarafından tanınır. Ortak Günlük
229        Biçeminde üretilen günlük girdileri şöyle görünür:</p>
230
231      <div class="example"><p><code>
232        127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
233        /apache_pb.gif HTTP/1.0" 200 2326
234      </code></p></div>
235
236      <p>Bu günlük girdisini parça parça açıklayalım:</p>
237
238      <dl>
239        <dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
240
241        <dd>Bu, sunucuya istek yapan istemcinin (uzak konağın) IP adresidir.
242          Eğer <code class="directive"><a href="/mod/core.html#hostnamelookups">HostnameLookups</a></code>
243          yönergesine <code>On</code> değeri atanmışsa sunucu bu IP adresi
244          için DNS sorgusu yapacak ve IP adresi yerine bulduğu konak ismini
245          yazmaya çalışacaktır. Bununla birlikte, bu işlem sunucuyu epeyce
246          yavaşlattığından önerilmemektedir. Konak isimlerini saptamak için en
247          iyisi günlük girdilerini <code class="program"><a href="/programs/logresolve.html">logresolve</a></code> gibi bir
248          günlük işlemcisinden geçirmektir. Burada raporlanan IP adresi
249          doğrudan istemcinin IP adresi olmayabilir. Eğer sunucu ile istemci
250          arasında bir vekil sunucu varsa bu IP adresi, vekil sunucunun IP
251          adresi olacaktır.</dd>
252
253        <dt><code>-</code> (<code>%l</code>)</dt>
254
255        <dd>Çıktıdaki bir "tire" imi istenen bilgi parçasının mevcut olmadığı
256          anlamına gelir. Bu durumda, mevcut olmayan bilgi istemci makine
257          üzerinde <code>identd</code> tarafından belirlenen istemcinin RFC
258          1413 kimliğidir. Bu bilgi oldukça güvenilmezdir ve sıkıca denetlenen
259          iç ağlar haricinde hemen hemen asla kullanılmamalıdır. Apache,
260          <code class="directive"><a href="/mod/mod_ident.html#identitycheck">IdentityCheck</a></code> yönergesine
261          <code>On</code> değeri atanmış olmadıkça bu bilgiyi saptamaya
262          uğraşmaz.</dd>
263
264        <dt><code>frank</code> (<code>%u</code>)</dt>
265
266        <dd>Bu, belge isteğinde bulunan kişinin HTTP kimlik doğrulamasıyla
267          saptanan kullanıcı kimliğidir. Bu değer CGI betiklerine
268          <code>REMOTE_USER</code> ortam değişkeni ile sağlanır. Eğer istek
269          için durum kodu 401 ise (aşağıya bakınız) henüz kullanıcının kimliği
270          doğrulanmamış olacağından bu değere güvenilmemelidir. Eğer belge
271          parola korumalı değilse günlüğün bu kısmı da yukarıdaki gibi
272          "<code>-</code>" olacaktır.</dd>
273
274        <dt><code>[10/Oct/2000:13:55:36 -0700]</code>
275        (<code>%t</code>)</dt>
276
277        <dd>İsteğin alındığı tarih ve saat. Biçemi şöyledir:
278
279          <p class="indent">
280            <code>[gün/ay/yıl:saat:dakika:saniye dilim]<br />
281             gün&nbsp;&nbsp;&nbsp;&nbsp;= 2 hane<br />
282             ay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 3 harf<br />
283             yıl&nbsp;&nbsp;&nbsp;&nbsp;= 4 hane<br />
284             saat&nbsp;&nbsp;&nbsp;= 2 hane<br />
285             dakika = 2 hane<br />
286             saniye = 2 hane<br />
287             dilim&nbsp; = (`+' | `-') 4 hane</code>
288          </p>
289          <p>Günlük biçem dizgesinde zaman gösterim biçemini
290          <code>%{<em>biçem</em>}t</code> şeklinde belirtmek de mümkündür.
291          Buradaki <code><em>biçem</em></code> dizgesi, stardart C
292          kütüphanesindeki <code>strftime(3)</code> işlevi için tanımlanmış
293          biçem belirteçleriyle veya desteklenen özel belirteçlerle
294          oluşturulabilir. Ayrıntılı bilgi için <code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code>
295          <a href="mod/mod_log_config.html#formats">biçem dizgelerine</a>
296          bakın.</p>
297        </dd>
298
299        <dt><code>"GET /apache_pb.gif HTTP/1.0"</code>
300        (<code>\"%r\"</code>)</dt>
301
302        <dd>İstemciden alınan istek satırının çift tırnaklar arasında
303          gösterilmesi istenmiştir. İstek satırı en yararlı bilgi parçalarını
304          içerir. Birincisi, istemci tarafından kullanılan yöntem
305          <code>GET</code>’miş. İkinci olarak istemci
306          <code>/apache_pb.gif</code> dosyasını istemiş ve üçüncü olarak
307          istemci <code>HTTP/1.0</code> protokolünü kullanmış. İstek satırının
308          bazı parçalarını bağımsız olarak da günlüklemek mümkündür. Örneğin,
309          "<code>%m %U%q %H</code>" dizgesi, yöntem, yol, sorgu dizgesi ve
310          protokolü kaydedecektir; bu dizge "<code>%r</code>" biçem
311          belirtecinin tek başına yaptığı işi yapar.</dd>
312
313        <dt><code>200</code> (<code>%&gt;s</code>)</dt>
314
315        <dd>Bu, sunucunun istemciye gönderdiği durum kodudur. İsteğin
316          başarıyla yerine getirilip getirilmediğini gösterdiği için bu bilgi
317          çok değerlidir. Durum kodu 2 ile başlıyorsa istek başarıyla yerine
318          getirilmiştir, 3 ile başlıyorsa yönlendirilmiştir, 4 ile başlıyorsa
319          istemci tarafında bir hata oluşmuştur, 5 ile başlıyorsa sunucuda bir
320          hata oluşmuştur. Olası hata kodlarının tam listesi <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">RFC2616 Hiper
321          Metin Aktarım Protokolü</a>nün 10. bölümünde bulunabilir.</dd>
322
323        <dt><code>2326</code> (<code>%b</code>)</dt>
324
325        <dd>Son parça istemciye döndürülen nesnenin yanıt başlığı hariç
326          uzunluğudur. Eğer istemciye bir içerik döndürülmemişse bu değer
327          "<code>-</code>" olacaktır. Bunun yerine günlüğe "<code>0</code>"
328          yazdırmak için <code>%B</code> belirtecini kullanınız.</dd>
329      </dl>
330    
331
332    <h3><a name="combined" id="combined">Birleşik Günlük Biçemi</a></h3>
333      
334
335      <p>Sıklıkla kullanılan diğer bir biçem dizgesi Birleşik Günlük Biçemi
336        (Combined Log Format) olup şöyle kullanılabilir:</p>
337
338      <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
339CustomLog log/access_log combined</pre>
340
341
342      <p>Bu biçem ilaveten 2 alan içermesi dışında Ortak Günlük Biçemi ile
343        aynıdır. İlave alanların ikisi de <code>%{<em>başlık</em>}i</code>
344        biçeminde olup buradaki <code><em>başlık</em></code>, HTTP isteğindeki
345        başlık alanlarından biridir. Bu biçemin kullanıldığı bir erişim
346        günlüğü girdisi şöyle olurdu:</p>
347
348      <div class="example"><p><code>
349        127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
350        /apache_pb.gif HTTP/1.0" 200 2326
351        "http://www.example.com/start.html" "Mozilla/4.08 [en]
352        (Win98; I ;Nav)"
353      </code></p></div>
354
355      <p>Ek alanlar:</p>
356
357      <dl>
358        <dt><code>"http://www.example.com/start.html"</code>
359        (<code>\"%{Referer}i\"</code>)</dt>
360
361        <dd>HTTP istek başlığı "Referer". İstemcinin raporladığı isteğin
362          kaynaklandığı URI. (Bu isteğin yapılmasını sağlayan bağlantıyı
363          içeren URL veya istek bir sayfanın bileşenleri ile ilgiliyse istenen
364          sayfanın URL’si olabilir.)</dd>
365
366        <dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
367        (<code>\"%{User-agent}i\"</code>)</dt>
368
369        <dd>Tarayıcı kimliğini içeren HTTP istek başlığı. Bu istemcinin
370          tarayıcısının raporladığı kendi tanıtım bilgisidir.</dd>
371      </dl>
372    
373
374    <h3><a name="multiple" id="multiple">Çok Sayıda Erişim Günlüğü</a></h3>
375      
376
377      <p>Yapılandırma dosyasında çok sayıda <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi kullanarak çok
378        sayıda erişim günlüğü kolayca oluşturulabilir. Örneğin aşağıdaki
379        yönergelerle 3 tane erişim günlüğü oluşturulacaktır. İlki temel OGB
380        bilgisini içerirken diğer ikisi isteğin kaynaklandığı yeri ve tarayıcı
381        kimliğini iç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
382        <code>AgentLog</code> yönergelerinin etkilerinin nasıl taklit
383        edileceğini de göstermektedir.</p>
384
385      <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
386CustomLog logs/access_log common
387CustomLog logs/referer_log "%{Referer}i -&gt; %U"
388CustomLog logs/agent_log "%{User-agent}i"</pre>
389
390
391      <p>Bu örnek ayrıca, <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesi ile bir takma ad tanımlamanın şart
392        olmadığını da göstermektedir. Günlük biçemi doğrudan <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesinde
393        belirtilebilir.</p>
394    
395
396    <h3><a name="conditional" id="conditional">Şarta Bağlı Günlükler</a></h3>
397      
398
399      <p>Bazı durumlarda istemcinin yaptığı isteğe bağlı olarak erişim
400        günlüğünde belli girdilerin dışlanması gerekebilir. Bu, <a href="env.html">ortam değişkenleri</a> sayesinde kolayca yerine
401        getirilebilir. Önce isteğin belli koşulları sağladığını belirten bir
402        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önergesi ile yapılır.
403        Sonra da, ortam değişkenine bağlı olarak isteklerin günlüğe dahil
404        edilip edilmeyeceği <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesinin
405        <code>env=</code> deyimi kullanılarak belirtilir. Bazı örnekler:</p>
406
407      <pre class="prettyprint lang-config"># yerel konaktan kaynaklanan istekleri imleyelim
408SetEnvIf Remote_Addr "127\.0\.0\.1" kaydetme
409# robots.txt dosyası isteklerini imleyelim
410SetEnvIf Request_URI "^/robots\.txt$" kaydetme
411# Kalanları günlüğe kaydedelim
412CustomLog logs/access_log common env=!kaydetme</pre>
413
414
415      <p>Başka bir örnek olarak, Türkçe belge isteklerini bir dosyaya diğer
416        dillerdeki istekleri başka bir dosyaya kaydedelim.</p>
417
418      <pre class="prettyprint lang-config">SetEnvIf Accept-Language "tr" turkce
419CustomLog logs/turkce_log common env=turkce
420CustomLog logs/diger_diller_log common env=!turkce</pre>
421
422
423      <p>Bir arabellekleme senaryosuna arabelleğin verimli kullanılıp
424        kullanılmadığını bilmek isteyelim. Bu basitçe şöyle yapılabilir:</p>
425
426      <pre class="prettyprint lang-config">SetEnv CACHE_MISS 1
427LogFormat "%h %l %u %t "%r " %&gt;s %b %{CACHE_MISS}e" common-cache
428CustomLog logs/access_log common-cache</pre>
429
430
431      <p><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> önce <code class="module"><a href="/mod/mod_env.html">mod_env</a></code> modülünü
432        çalıştıracak ve başarılı olunduğu takdirde içeriği onsuz teslim
433        edecektir. Bu durumda arabellek kaybı <code>1</code> olarak
434        günlüklenirken arabellek sunumu <code>-</code> olarak
435        günlüklenecektir.</p>
436
437      <p><code>env=</code> sözdizimine ek olarak, <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code> HTTP yanıt kodudaki koşul
438        değerlerini günlüklemeyi de destekler:</p>
439
440      <pre class="prettyprint lang-config">LogFormat "%400,501{User-agent}i" browserlog
441LogFormat "%!200,304,302{Referer}i" refererlog</pre>
442
443
444      <p>Bu örnekte, HTTP durum kodu 400 veya 501 ise <code>User-agent</code>
445        başlığı günlüklenecektir. Aksi takdirde, günlüğe bir "-" yazılacaktır.
446        Benzer şekilde ikinci örnekte, HTTP durum kodu 200, 204 veya 302
447        <strong>değilse</strong> (durum kodlarının öncesindeki "!" imine
448        dikkat) <code>Referer</code> başlığı günlüklenecektir.</p>
449
450      <p>Koşulaa bağlı günlük kaydının çok esnek ve güçlü olabileceğini
451        göstermiş olsak da günlük içeriğini denetlemenin tek yolu bu değildir.
452        Günlük dosyaları sunucu etkinliğini eksiksiz olarak kaydedebildikleri
453        takdirde daha yararlı olurlar. Günlük dosyalarını sonradan işleme tabi
454        tutarak istenmeyen girdileri kaldırılmış bir kopya almak hem kolay hem
455        de daha yararlıdır.</p>
456    
457  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
458<div class="section">
459<h2><a name="rotation" id="rotation">Günlük Çevrimi</a></h2>
460    
461
462    <p>Yükü ağır sunucularda günlük dosyalarına kaydedilen bilginin miktarı
463      çok büyük boyutlara ulaşabilir. 10.000 istek içeren bir erişim günlüğü
464      yaklaşık 1MB yer kaplar. Etkin günlük dosyasını belirli aralıklarla
465      değiştirmek veya silmek gerekebilir. Apache httpd çalışırken dosyayı sürekli
466      açık tuttuğu ve yazdığı için bu işlem sunucu çalışırken yapılamaz. Bu
467      bakımdan, günlük dosyası değiştirildikten veya silindikten sonra yeni
468      dosyanın açılması için <a href="stopping.html">sunucunun yeniden
469      başlatılması</a> gerekir.</p>
470
471    <p><a href="stopping.html#graceful">Nazikçe yeniden başlatmak</a>
472      suretiyle sunucunun, mevcut ve bekleyen bağlantıları kaybetmeden yeni
473      günlük dosyalarını açması sağlanabilir. Bununla birlikte, bu işlem
474      sırasında sunucunun eski isteklere sunumu bitirene kadar eski günlük
475      dosyalarına yazmaya devam edebilmesi gerekir. Bu bakımdan, yeniden
476      başlatmanın ardından eski günlük dosyaları üzerinde bir işlem yapmadan
477      önce biraz beklemek gerekir. Günlük dosyalarını döndürürken kullanılan
478      senaryolarda genellikle eski günlük dosyaları yer kazanmak için
479      sıkıştırılırlar:</p>
480
481    <div class="example"><p><code>
482      mv access_log access_log.old<br />
483      mv error_log error_log.old<br />
484      apachectl graceful<br />
485      sleep 600<br />
486      gzip access_log.old error_log.old
487    </code></p></div>
488
489    <p>Günlük çevrimi yapmanın başka bir yolu da sonraki bölümde açıklandığı
490      gibi <a href="#piped">borulu günlükler</a> kullanmaktır.</p>
491  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
492<div class="section">
493<h2><a name="piped" id="piped">Borulu Günlükler</a></h2>
494    
495
496    <p>Apache httpd hata ve erişim günlüklerini doğrudan bir dosyaya yazmak
497      yerine bir boru üzerinden başka bir sürece yazabilir. Bu yetenek ana
498      sunucuya herhangi bir kod eklemeksizin günlükleme esnekliğini şaşırtıcı
499      derecede arttırır. Günlükler boruya yazılmak istenirse dosya ismini boru
500      karakteriyle ("<code>|</code>") değiştirip ardına günlük girdilerini
501      standart girdisinden kabul edecek programın ismini eklemek yeterlidir.
502      Apache httpd başlatıldığı zaman borulu günlük işlemini de
503      başlatacaktır. Eğer sunucu çalışırken günlükleri kabul eden süreç
504      çökerse Apache httpd bu programı yeniden başlatır. (Bu son özelliği
505      sebebiyle bu tekniğe “güvenilir borulu günlükleme” adını veriyoruz.)</p>
506
507    <p>Borulu günlük süreçleri ana Apache httpd süreci tarafından başlatılır
508      ve bu süreçler ana Apache httpd sürecinin kullanıcı kimliğini miras
509      alırlar. Yani borulu günlükleme programları aslında root tarafından
510      çalıştırılmış gibi olur. Bu bakımdan, bu programları basit ve güvenilir
511      kılmak çok önemlidir.</p>
512
513    <p>Borulu günlüklerin önemli kullanım alanlarından biri de sunucuyu
514      yeniden başlatmak gerekmeksizin günlük çevrimini mümkün kılmaktır.
515      Apache HTTP sunucusu bu amaçla kullanılmak üzere
516      <code class="program"><a href="/programs/rotatelogs.html">rotatelogs</a></code> diye bir program içerir. Örneğin,
517      günlükleri 24 saatte bir döndürmek isterseniz bunu şöyle
518      yapabilirsiniz:</p>
519
520    <pre class="prettyprint lang-config">CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common</pre>
521
522
523    <p>Borunun diğer ucundaki süreci başlatacak komutun tırnak içine
524      alındığına dikkat ediniz. Bu örnekler erişim günlüğü için verilmişse de
525      aynı teknik hata günlüğü için de kullanılabilir.</p>
526
527    <p>Hariçten bir uygulama olarak <a href="http://www.cronolog.org/">cronolog</a> isminde buna benzer ancak
528      çok daha esnek bir program daha vardır.</p>
529
530    <p>Borulu günlükler de şarta bağlı günlükleme kadar güçlü olmakla beraber
531      çevrimdışı ardıl işlemler gibi daha basit çözümler için
532      kullanılmamalıdır.</p>
533
534    <p>Öntanımlı olarak borulu günlük süreci bir kabuk kullanmadan
535      çalıştırılır. Kabuk kullanarak (genelde <code>/bin/sh -c</code> ile)
536      yapılmak istenirse "<code>|</code>" yerine "<code>|$</code>"
537      kullanılır:</p>
538
539    <pre class="prettyprint lang-config"># Kabuk kullanarak "rotatelogs" çalıştırmak
540CustomLog "|$/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common</pre>
541
542
543    <p>Bu, Apache 2.2 için öntanımlı davranıştı. Kabuk özelliklerine bağlı
544      olarak, yeniden başlatma sırasındaki sinyal işleme sorunları ve günlük
545      borulama uygulamasının yaşam süresi için ek bir kabuk süreci ile
546      sonuçlanabilir. Apache 2.2 ile uyumluluk açısından "<code>||</code>"
547      gösterimi de desteklenmekte olup "<code>|</code>" kullanımına
548      eşdeğerdir.</p>
549
550  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
551<div class="section">
552<h2><a name="virtualhost" id="virtualhost">Sanal Konaklar</a></h2>
553    
554
555    <p>Bir sunucu çok sayıda <a href="vhosts/">sanal konak</a> ile hizmet
556      sunarken bunların günlük kayıtları için çeşitli seçenekler mevcuttur.
557      İlk seçenekte, sanki sunucu tek bir konakla hizmet sunuyormuş gibi
558      günlük kaydı yapılır. Günlükleme yönergelerini <code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> bölümlerinin dışına, ana sunucu
559      bağlamına yerleştirerek tüm isteklerin aynı erişim ve hata günlüğüne
560      yazılmasını sağlamak olasıdır. Bu teknik, tek tek sanal konaklar için
561      kolayca istatistik toplamaya izin vermez.</p>
562
563    <p>Eğer  <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code>
564      veya <code class="directive"><a href="/mod/core.html#errorlog">ErrorLog</a></code> yönergesi bir
565      <code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> bölümüne
566      yerleştirilirse bu sanal konağa bütün erişimler veya hatalar belirtilen
567      dosyaya günlüklenecektir. Böyle günlükleme yönergeleri içermeyen sanal
568      konakların günlükleri hala ana sunucunun hata ve erişim günlüklerine
569      yazılmaya devam edecektir. Bu teknik az sayıda sanal konak barındıran
570      sunucular için çok kullanışlıdır. Fakat sanal konak sayısı çok fazlaysa
571      bu teknikle günlük dosyalarını yönetmek çok karmaşık bir hal alabilir.
572      Ayrıca, <a href="vhosts/fd-limits.html">yetersiz dosya tanıtıcısı</a>
573      sorunlarıyla çok sık karşılaşılabilir.</p>
574
575    <p>Erişim günlükleri için çok az bir fedakarlıkla çok iyi bir çözüm vardır.
576      Günlük biçemine sanal konaklarla ilgili bilgi eklemek suretiyle tüm
577      konakların aynı günlük dosyasını kullanmaları olasıdır. Böylece günlük
578      dosyası sonradan her sanal konak için ayrı bir dosya oluşturmak üzere
579      ayrıştırılabilir. Örneğin, bu işlem için şu yönergeler kullanılıyor
580      olsun:</p>
581
582    <pre class="prettyprint lang-config">LogFormat "%v %l %u %t \"%r\" %&gt;s %b" ortaksankon
583CustomLog logs/access_log ortaksankon</pre>
584
585
586    <p><code>%v</code> belirteci isteği sunan sanal konağın ismini günlüğe
587      yazmak için kullanılır. Daha sonra <a href="programs/other.html">split-logfile</a> gibi bir program
588      kullanarak, bu dosyadan her sanal konak için ayrı birer dosya elde
589      edilebilir.</p>
590  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
591<div class="section">
592<h2><a name="other" id="other">Diğer Günlük Dosyaları</a></h2>
593    
594
595    <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yö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>
596
597    <h3>Gönderilen ve alınan bayt sayısının günlüklenmesi</h3>
598      
599
600      <p><code class="module"><a href="/mod/mod_logio.html">mod_logio</a></code> modülü <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesinde kullanılan
601        biçem belirteçlerine alınan ve gönderilen bayt sayıları için iki
602        belirteç (%I ve %O) ekler.</p>
603    
604
605    <h3>Adli Günlük</h3>
606      
607
608      <p><code class="module"><a href="/mod/mod_log_forensic.html">mod_log_forensic</a></code> modülü istemci isteklerinin kanıt
609        olarak kullanılmak amacıyla günlüklenmesini sağlar. Günlükleme her
610        istek için isteğe hizmet sunmadan önce ve sonra olmak üzere iki defa
611        yapılır. Böylece günlük dosyasında başarılı her istek için iki satır
612        bulunur. Adli günlükleme çok sıkı kurallara tabi olup
613        kişiselleştirilemez. Güvenlik ve hata ayıklama aracı olarak yararlı
614        değildir.</p>
615    
616
617    <h3><a name="pidfile" id="pidfile">PID Dosyası</a></h3>
618      
619
620      <p>Apache httpd başlatıldığında, ana httpd sürecinin kimliği (PID)
621        <code>logs/httpd.pid</code> dosyasına kaydedilir. Bu dosyanın ismi
622        <code class="directive"><a href="/mod/mpm_common.html#pidfile">PidFile</a></code> yönergesi ile
623        değiştirilebilir. Bu süreç kimliği sistem yöneticisi tarafından ana
624        sürece sinyal göndererek artalan sürecini sonlandırmak veya yeniden
625        başlatmak için kullanılır. Windows üzerinde bu işlem için
626        <code>-k</code> komut satırı seçeneği kullanılır. Bu konuda daha
627        ayrıntılı bilgi edinmek için <a href="stopping.html">Durdurma ve
628        Yeniden Başlatma</a> belgesine bakınız.</p>
629    
630
631    <h3><a name="scriptlog" id="scriptlog">Betik Günlüğü</a></h3>
632      
633
634      <p><code class="directive"><a href="/mod/mod_cgi.html#scriptlog">ScriptLog</a></code> yönergesi CGI
635        betiklerinin girdi ve çıktılarını kaydetmenizi mümkün kılmak suretiyle
636        hata ayıklamaya yardımcı olur. Bu sadece deneysel amaçla kullanılmalı,
637        asıl sunucuya uygulanmamalıdır. <a href="mod/mod_cgi.html">mod_cgi</a>
638        belgesinde daha fazla bilgi bulunabilir.</p>
639    
640  </div></div>
641<div class="bottomlang">
642<p><span>Mevcut Diller: </span><a href="/en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
643<a href="/fr/logs.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
644<a href="/ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
645<a href="/ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
646<a href="/tr/logs.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
647</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
648<script type="text/javascript"><!--//--><![CDATA[//><!--
649var comments_shortname = 'httpd';
650var comments_identifier = 'http://httpd.apache.org/docs/2.4/logs.html';
651(function(w, d) {
652    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
653        d.write('<div id="comments_thread"><\/div>');
654        var s = d.createElement('script');
655        s.type = 'text/javascript';
656        s.async = true;
657        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
658        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
659    }
660    else { 
661        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
662    }
663})(window, document);
664//--><!]]></script></div><div id="footer">
665<p class="apache">Copyright 2014 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
666<p class="menu"><a href="/mod/">Modüller</a> | <a href="/mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="/glossary.html">Terimler</a> | <a href="/sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
667if (typeof(prettyPrint) !== 'undefined') {
668    prettyPrint();
669}
670//--><!]]></script>
671</body></html>