2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
4 <!-- English Revision: 723557:1197413 (outdated) -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
7 Reviewed by: Orhan Berent <berent belgeler.org>
8 ========================================================== -->
11 Licensed to the Apache Software Foundation (ASF) under one or more
12 contributor license agreements. See the NOTICE file distributed with
13 this work for additional information regarding copyright ownership.
14 The ASF licenses this file to You under the Apache License, Version 2.0
15 (the "License"); you may not use this file except in compliance with
16 the License. You may obtain a copy of the License at
18 http://www.apache.org/licenses/LICENSE-2.0
20 Unless required by applicable law or agreed to in writing, software
21 distributed under the License is distributed on an "AS IS" BASIS,
22 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 See the License for the specific language governing permissions and
24 limitations under the License.
27 <modulesynopsis metafile="mod_log_config.xml.meta">
29 <name>mod_log_config</name>
30 <description>Sunucuya yapılan isteklerin günlük kayıtlarının tutulması
33 <sourcefile>mod_log_config.c</sourcefile>
34 <identifier>log_config_module</identifier>
37 <p>Bu modül istemci isteklerinin esnek şekilde günlüklenmesi ile
38 ilgilidir. Günlükler kişiselleştirilebilir biçemdedir ve doğrudan bir
39 dosyaya yazılabileceği gibi boru üzerinden harici bir sürece de
40 yazılabilir. İsteğin özelliklerine bağlı olarak bazı isteklerin
41 günlüklere kaydedilmesi veya kaydedilmemesi mümkün kılınmıştır.</p>
43 <p>Bu modül üç yönerge içermektedir: Bir günlük dosyası oluşturmak için
44 <directive module="mod_log_config">TransferLog</directive>, günlük
45 biçemini kişiselleştirmek için <directive
46 module="mod_log_config">LogFormat</directive> ve tek başına bir günlük
47 dosyasını hem tanımlayıp hem de biçemleyen <directive
48 module="mod_log_config" >CustomLog</directive> yönergesi. Her isteğin
49 çok sayıda dosyaya günlüklenmesini sağlamak için yapılandırma dosyasında
50 her sunucu için birden fazla <directive>TransferLog</directive> ve
51 <directive >CustomLog</directive> yönergesi belirtilebilir.</p>
53 <seealso><a href="../logs.html">Apache Günlük Dosyaları</a></seealso>
55 <section id="formats"><title>Günlük Girdilerinin Kişiselleştirilmesi</title>
57 <p><directive module="mod_log_config" >LogFormat</directive> ve <directive
58 module="mod_log_config" >CustomLog</directive> yönergelerinin biçem
59 argümanı bir dizgedir. Bu dizge her isteği günlük dosyasına günlüklemek
60 için kullanılır. Doğrudan günlük dosyalarına kopyalanmak üzere dizgesel
61 sabitler içerebileceği gibi satırsonu ve sekme karakterleri olarak C
62 tarzı "\n" ve "\t" denetim karakterlerini de içerebilir. Dizgesel sabit
63 olarak kullanılan tırnak ve tersbölü imlerinin tersbölü ile öncelenmesi
66 <p>İstek özellikleri biçem dizgesine “<code>%</code>” imli belirteçler
67 yerleştirilerek günlüklenir. Bu belirteçler ve anlamları:</p>
69 <table border="1" style="zebra">
70 <columnspec><column width=".2"/><column width=".8"/></columnspec>
72 <th>Açıklama</th></tr>
74 <tr><td><code>%%</code></td>
75 <td>Yüzde imi</td></tr>
77 <tr><td><code>%a</code></td>
78 <td>Uzak IP adresi</td></tr>
80 <tr><td><code>%A</code></td>
81 <td>Yerel IP adresi</td></tr>
83 <tr><td><code>%B</code></td>
84 <td>HTTP başlıkları hariç, yanıtın bayt cinsinden uzunluğu.</td></tr>
86 <tr><td><code>%b</code></td>
87 <td>HTTP başlıkları hariç, yanıtın bayt cinsinden uzunluğu. OGB
88 biçeminde hiç bayt gönderilmemişse günlüğe '<code>-</code>' yerine
89 '<code>0</code>' çıktılanır.</td></tr>
91 <tr><td><code>%{<var>DEĞİŞKEN</var>}C</code></td>
92 <td>İstek içinde sunucuya gönderilen <var>DEĞİŞKEN</var> çerezinin
95 <tr><td><code>%D</code></td>
96 <td>Mikrosaniye cinsinden isteği sunmak için harcanan zaman.</td></tr>
98 <tr><td><code>%{<var>DEĞİŞKEN</var>}e</code></td>
99 <td><var>DEĞİŞKEN</var> ortam değişkeninin içeriği.</td></tr>
101 <tr><td><code>%f</code></td>
102 <td>Dosya ismi</td></tr>
104 <tr><td><code>%h</code></td>
105 <td>Uzak konak</td></tr>
107 <tr><td><code>%H</code></td>
108 <td>İstek Protokolü</td></tr>
110 <tr><td><code>%{<var>DEĞİŞKEN</var>}i</code></td>
111 <td>İstekle birlikte sunucuya gönderilen
112 <code><var>DEĞİŞKEN</var>:</code> başlık satır(lar)ının
113 içeriği. Diğer modüllerde (örn. <module>mod_headers</module>)
114 yapılan değişikliklerden etkilenir.</td></tr>
116 <tr><td><code>%k</code></td>
117 <td>Bu bağlantıda işlenen isteklerin sayısı; yani örneğin,
118 '1' değeri bağlantı kurulduktan sonraki ilk kalıcı bağlantıyı,
119 '2', ikinci bağlantıyı, ..., vb. gösterir;
120 <directive module="core">KeepAlive</directive> kullanılmışsa
121 değer anlamlıdır; aksi takdirde değer daima 0’dır.</td></tr>
123 <tr><td><code>%l</code></td>
124 <td>Uzak kullanıcı kimliği (sağlanmışsa, identd üzerinden).
125 <module>mod_ident</module> modülü mevcut ve <directive
126 module="mod_ident">IdentityCheck</directive> yönergesine değer
127 olarak <code>On</code> atanmış olmadıkça bu belirteç için günlüğe
128 tire imi yazılır.</td></tr>
130 <tr><td><code>%m</code></td>
131 <td>İstek yöntemi</td></tr>
133 <tr><td><code>%{<var>DEĞİŞKEN</var>}n</code></td>
134 <td>Diğer modüldeki <var>DEĞİŞKEN</var> bilgisinin içeriği.</td></tr>
136 <tr><td><code>%{<var>DEĞİŞKEN</var>}o</code></td>
137 <td>Yanıttaki <code><var>DEĞİŞKEN</var>:</code> başlık satır(lar)ının
140 <tr><td><code>%p</code></td>
141 <td>Sunucunun isteği sunduğu meşru port</td></tr>
143 <tr><td><code>%{<var>biçem</var>}p</code></td>
144 <td>Sunucunun veya istemcinin gerçek portu veya sunucunun isteği
145 sunduğu meşru port. Geçerli biçemler: <code>canonical</code>,
146 <code>local</code> ve <code>remote</code> (anlamları sırasıyla:
147 meşru, yerel ve uzak).</td></tr>
149 <tr><td><code>%P</code></td>
150 <td>İsteği sunan çocuk sürecin süreç kimliği.</td></tr>
152 <tr><td><code>%{<var>biçem</var>}P</code></td>
153 <td>İsteği sunan çocuk sürecin süreç kimliği (<code>pid</code>) veya
154 evre kimliği (<code>tid</code>). Geçerli biçemler: <code>pid</code>,
155 <code>tid</code>, <code>hextid</code>. <code>hextid</code> için APR
156 1.2.0 veya üstü gerekir.</td></tr>
158 <tr><td><code>%q</code></td>
159 <td>Sorgu dizgesi (bir sorgu dizgesi mevcutsa önüne bir <code>?</code>
160 eklenir yoksa hiçbir şey eklenmez).</td></tr>
162 <tr><td><code>%r</code></td>
163 <td>İsteğin ilk satırı.</td></tr>
165 <tr><td><code>%s</code></td>
166 <td>Durum. Dahili olarak yönlendirilen istekler için isteğin *özgün*
167 durumudur --- isteğin son durumu için <code>%>s</code>
168 kullanınız.</td></tr>
170 <tr><td><code>%t</code></td>
171 <td>İsteğin alındığı tarih ve saat (standart ingiliz biçemi).</td></tr>
173 <tr><td><code>%{<var>biçem</var>}t</code></td>
174 <td>İsteğin alındığı tarih ve saat; <var>biçem</var>
175 <code>strftime(3)</code> biçeminde belirtilmelidir (genelde
176 yerelleştirme amaçlı).</td></tr>
178 <tr><td><code>%T</code></td>
179 <td>Saniye cinsinden, isteği sunmak için harcanan zaman.</td></tr>
181 <tr><td><code>%u</code></td>
182 <td>Uzak kullanıcı (kimlik doğrulaması istenmişse vardır; durum kodu
183 (<code>%s</code>) 401 ise yanlış olabilir).</td></tr>
185 <tr><td><code>%U</code></td>
186 <td>Herhangi bir sorgu dizgesi içermeksizin istenen URL yolu.</td></tr>
188 <tr><td><code>%v</code></td>
189 <td>İsteği sunan sunucunun meşru sunucu ismi (<directive
190 module="core">ServerName</directive>).</td></tr>
192 <tr><td><code>%V</code></td>
193 <td><directive module="core" >UseCanonicalName</directive> ayarı ile
194 ilgili sunucu ismi.</td></tr>
196 <tr><td><code>%X</code></td>
197 <td>Yanıt tamamlandığında bağlantı durumu:
200 <columnspec><column width=".2"/><column width=".6"/></columnspec>
201 <tr><td><code>X</code> =</td>
202 <td>Yanıt tamamlanmadan bağlantı koptu.</td></tr>
203 <tr><td><code>+</code> =</td>
204 <td>Yanıt gönderildikten sonra bağlantı canlı kalabilir.</td></tr>
205 <tr><td><code>-</code> = </td>
206 <td>Yanıt gönderildikten sonra bağlantı kapatılacak.</td></tr>
209 <p>(Apache 1.3’ün son sürümlerinde bu belirteç <code>%c</code> idi
210 fakat geçmişe yönelik olarak <code>%{<var>isim</var>}c</code> ssl
211 sözdizimi ile çelişiyordu.)</p></td></tr>
213 <tr><td><code>%I</code></td>
214 <td>İstek ve başlıklar dahil alınan bayt sayısı; sıfır olamaz. Bunu
215 kullanmak için <module>mod_logio</module> etkin olmalıdır.</td></tr>
217 <tr><td><code>%O</code></td>
218 <td>Başlıklar dahil gönderilen bayt sayısı; sıfır olamaz.Bunu
219 kullanmak için <module>mod_logio</module> etkin olmalıdır.</td></tr>
222 <section id="modifiers"><title>Değiştiriciler</title>
224 <p>Belli öğelerin sadece belli durum kodlarıyla ilgili yanıtlarla
225 basılabilmesi için bu durum kodları % iminden hemen sonra virgüllerle
226 ayrılmış olarak yazılabilir. Örneğin,
227 <code>"%400,501{User-agent}i"</code> belirteci,
228 <code>User-agent</code> başlığını sadece 400 ve 501 hatalarında
229 günlüğe kaydeder. Diğer durum kodları için günlüğe <code>"-"</code>
230 yazılır. Durum kodlarını olumsuzlamak için başa bir "<code>!</code>"
231 konabilir. Örneğin, <code>"%!200,304,302{Referer}i"</code> belirteci,
232 200,304,302 durum kodlarından biriyle dönmeyen tüm istekler için
233 <code>Referer</code> başlığını durum koduyla birlikte günlüğe
236 <p>İsteğin dahili olarak yönlendirilmesinde özgün durumunun mu yoksa son
237 durumunun mu hesaba katılacağı "<" ve ">" değiştiricileri ile
238 belirtilebilir. Öntanımlı olarak <code>%s, %U, %T, %D,</code> ve
239 <code>%r</code> belirteçleri isteğin özgün durumuna bakarken diğerleri
240 son durumuna bakarlar. Bu bakımdan örneğin, <code>%>s</code>
241 belirteci, özgün istekteki kimliği doğrulanmış kullanıcının, dahili
242 olarak kimlik doğrulaması gerekmeyen bir özkaynağa yönlendirilmesi
243 halinde isteğin son durumunu kaydetmekte kullanılabilir.</p>
247 <section id="format-notes"><title>Bazı Bilgiler</title>
249 <p>Güvenlik nedeniyle, 2.0.46 sürümünden itibaren <code>%r</code>,
250 <code>%i</code> ve <code>%o</code> belirteçlerinde basılamayan
251 karakterler ve diğer özel karakterler <code>\x<var>hh</var></code>
252 dizilimleri biçeminde öncelenmektedir. Burada <var>hh</var> yerine
253 karakter numarasının onaltılık gösterimi yazılır. Bir tersbölü ile
254 öncelenmesi gereken <code>"</code> ve <code>\</code> ile
255 <code>\n</code>, <code>\t</code> gibi C tarzı gösterimler bu kuralın
256 dışındadır. 2.0.46 sürümünün öncesinde bu dizgeler öncelenmezdi ve ham
257 günlük dosyalarıyla çalışırken dikkatli olmak gerekirdi.</p>
259 <p>2.0 sürümünde 1.3 sürümünün aksine <code>%b</code> ve
260 <code>%B</code> biçem belirteçleri, istemciye gönderilen bayt sayısını
261 değil, HTTP yanıtının bayt sayısını ifade ederdi (bu yanıt, örneğin,
262 SSL kullanıldığında veya bağlantı koptuğunda farklı uzunlukta olur).
263 Artık, ağa gönderilen gerçek bayt sayısını günlüğe kaydetmek için
264 <module>mod_logio</module> modülü tarafından sağlanan <code>%O</code>
265 biçem belirteci kullanılmaktadır.</p>
269 <section id="examples"><title>Örnekler</title>
271 <p>Genelde herkesçe kullanılan günlük kaydı biçemleme dizgelerinden
275 <dt>Ortak Günlük Biçemi (OGB)</dt>
276 <dd><code>"%h %l %u %t \"%r\" %>s %b"</code></dd>
278 <dt>Sanal Konaklı Ortak Günlük Biçemi</dt>
279 <dd><code>"%v %h %l %u %t \"%r\" %>s %b"</code></dd>
281 <dt>NCSA uzun/birleşik günlük biçemi</dt>
282 <dd><code>"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
283 \"%{User-agent}i\""</code></dd>
285 <dt>Referer başlığını içeren günlük biçemi</dt>
286 <dd><code>"%{Referer}i -> %U"</code></dd>
288 <dt>User-agent başlığını içeren günlük biçemi</dt>
289 <dd><code>"%{User-agent}i"</code></dd>
294 <section id="security"><title>Güvenlik Kaygıları</title>
295 <p>Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı
296 dışında diğer kullanıcılar tarafından yazılabiliyor olması halinde
297 güvenliğinizden nasıl feragat etmiş olacağınız <a
298 href="../misc/security_tips.html#serverroot">güvenlik ipuçları</a>
299 belgesinde açıklanmıştır.</p>
303 <name>BufferedLogs</name>
304 <description>Günlük girdilerini diske yazmadan önce bellekte tamponlar
306 <syntax>BufferedLogs On|Off</syntax>
307 <default>BufferedLogs Off</default>
308 <contextlist><context>server config</context></contextlist>
309 <status>Experimental</status>
310 <compatibility>2.0.41 ve sonrasında mevcuttur.</compatibility>
313 <p><directive>BufferedLogs</directive> yönergesi,
314 <module>mod_log_config</module> modülünün çeşitli günlük girdilerini her
315 isteğin hemen ardından tek tek değil, bir bütün halinde diske yazılmak
316 üzere bellekte saklanmasını sağlar. Bu, bazı sistemlerde daha verimli
317 disk erişimi, dolayısıyla daha yüksek başarım sağlayabilir. Sadece
318 sunucu geneli için belirtilebilir, sanal konaklar için ayrı ayrı
319 yapılandırılamaz.</p>
321 <note>Bu yönerge deneyseldir ve dikkatli kullanılmalıdır.</note>
326 <name>CustomLog</name>
327 <description>Günlük dosyasın ismini ve girdi biçemini belirler.</description>
328 <syntax>CustomLog <var>dosya</var>|<var>borulu-süreç</var>
329 <var>biçem</var>|<var>takma-ad</var>
330 [env=[!]<var>ortam-değişkeni</var>]</syntax>
331 <contextlist><context>server config</context><context>virtual host</context>
335 <p><directive>CustomLog</directive> yönergesi istekleri günlüğe kaydetmek
336 için kullanılır. Yönerge ile bir günlük biçemi belirtilebilir ve günlük
337 kaydı isteğin özelliklerine bağlı olarak ortam değişkenleri vasıtasıyla
338 şarta bağlı kılınabilir.</p>
340 <p>İlk argümanda günlüğün yazılacağı yer belirtilir. İki tür yer
344 <dt><var>dosya</var></dt>
345 <dd><directive module="core" >ServerRoot</directive> yönergesinin
346 değerine göreli bir dosya ismi.</dd>
348 <dt><var>borulu-süreç</var></dt>
349 <dd>"<code>|</code>" boru karakteri ile öncelenmiş olarak günlük
350 bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut
353 <note type="warning"><title>Güvenlik:</title>
354 <p>Bir borulu süreç kullanılmışsa, süreç <program>httpd</program>’yi
355 başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından
356 başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak
357 programın güvenilir olması önemlidir.</p>
359 <note type="warning"><title>Bilginize</title>
360 <p>Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı
361 platformlarda bile yapılandırma dosyasında bu amaçla normal bölü
362 çizgilerini kullanmaya özen gösterilmelidir.</p>
366 <p>İkinci argümanda günlüğe ne yazılacağı belirtilir. Ya evvelce
367 <directive module="mod_log_config">LogFormat</directive> yönergesi ile
368 tanımlanmış bir <var>takma-ad</var> ya da içeriği <a
369 href="#formats">Günlük Girdilerinin Kişiselleştirilmesi</a> bölümünde
370 açıklanmış bir <var>biçem</var> dizgesi olabilir.</p>
372 <p>Örneğin, aşağıdaki iki yönerge kümesi aynı etkiye sahiptir:</p>
375 # Biçem dizgesi yerine takma ad içeren CustomLog<br />
376 LogFormat "%h %l %u %t \"%r\" %>s %b" common<br />
377 CustomLog logs/access_log common<br />
379 # Biçem dizgesinin kendisini içeren CustomLog<br />
380 CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"
383 <p>Üçüncü argüman isteğe bağlı olup, sunucu ortamında belli bir değişkenin
384 varlığına bağlı olarak belli bir isteğin günlüğe kaydedilip
385 kaydedilmeyeceğini belirler. Eğer istek için belirtilen <a
386 href="../env.html">ortam değişkeni</a> mevcutsa (veya
387 '<code>env=!<var>değişken</var></code>' durumunda mevcut değilse) istek
388 günlüğe kaydedilir.</p>
390 <p>Ortam değişkenleri <module>mod_setenvif</module>
391 ve/veya <module>mod_rewrite</module> modülleri kullanılarak her istek
392 için ayrı ayrı atanabilir. Örneğin, GIF biçemli resimler için yapılan
393 istekleri ana günlük dosyasına değil de başka bir dosyaya kaydetmek
397 SetEnvIf Request_URI \.gif$ gif-image<br />
398 CustomLog gif-requests.log common env=gif-image<br />
399 CustomLog nongif-requests.log common env=!gif-image
402 <p>Veya eski <code>RefererIgnore</code> yönergesinin davranışını taklit
403 etmek isterseniz:</p>
406 SetEnvIf Referer example\.com yerel-atif<br />
407 CustomLog referer.log referer env=!yerel-atif
413 <name>LogFormat</name>
414 <description>Bir günlük dosyasında kullanılmak üzere girdi biçemi tanımlar.
416 <syntax>LogFormat <var>biçem</var>|<var>takma-ad</var>
417 [<var>takma-ad</var>]</syntax>
418 <default>LogFormat "%h %l %u %t \"%r\" %>s %b"</default>
419 <contextlist><context>server config</context><context>virtual host</context>
423 <p>Bu yönerge erişim günlüğü dosyasının girdi biçemini belirler.</p>
425 <p><directive>LogFormat</directive> yönergesi iki şekilde kullanılabilir.
426 Tek argüman belirtilebilen ilkinde daha sonra
427 <directive>TransferLog</directive> yönergelerinde belirtilen günlüklerde
428 kullanılmak üzere günlük biçemini belirler. Bu günlük biçemi yukarıda
429 açıklanan <a href="#formats"><var>biçem</var></a> belirteçlerinden
430 oluşur. Bu tek argüman yerine aşağıda açıklandığı gibi önceki bir
431 <directive>LogFormat</directive> yönergesinde tanımlanmış bir günlük
432 biçemine atıf yapan bir <var>takma-ad</var> da belirtilebilir.</p>
434 <p><directive>LogFormat</directive> yönergesinin ikinci kullanım şeklinde
435 <var>biçem</var> bir <var>takma-ad</var> için tanımlanır. Bu takma ad
436 daha sonraki <directive >LogFormat</directive> veya <directive
437 module="mod_log_config" >CustomLog</directive> yönergelerinde aynı biçem
438 dizgesini uzun uzadıya yazmamak için <var>takma-ad</var> olarak
439 kullanılır. Bir <directive>LogFormat</directive> yönergesi bir takma ad
440 tanımlamaktan <strong>başka bir şey yapmaz</strong>; yani, yaptığı iş
441 sadece bir takma ad tanımlamaktan ibarettir, biçemi uygulamaz veya
442 biçemi öntanımlı hale getirmez. Bu bakımdan sonraki <directive
443 module="mod_log_config">TransferLog</directive> yönergelerini de
444 etkilemeyecektir. Ayrıca, <directive>LogFormat</directive> yönergesi bir
445 takma ada başka bir takma ad tanımlamakta da kullanılamaz. Bir takma
446 adın yüzde imi (<code>%</code>) içeremeyeceğine de dikkat ediniz.</p>
448 <example><title>Örnek</title>
449 LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
455 <name>TransferLog</name>
456 <description>Bir günlük dosyasının yerini belirtir.</description>
457 <syntax>TransferLog <var>dosya</var>|<var>borulu-süreç</var>
458 [<var>takma-ad</var>]</syntax>
459 <contextlist><context>server config</context><context>virtual host</context>
463 <p>Bir günlük biçemi tanımlanmasını ve şarta bağlı günlük kaydını mümkün
464 kılmaması haricinde <directive module="mod_log_config"
465 >CustomLog</directive> yönergesi gibidir. Günlük biçemi yerine kendinden
466 önce yer alan bir <directive
467 module="mod_log_config">LogFormat</directive> yönergesinde tanımlanan
468 bir takma ad kullanılır. Açıkça bir günlük biçemi takma adı
469 belirtilmedikçe Ortak Günlük Biçemi öntanımlıdır.</p>
471 <example><title>Örnek</title>
472 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
473 \"%{User-agent}i\""<br />
474 TransferLog logs/access_log