Thread overview
Apache LTSV Format - D Binding
Feb 19, 2013
Salih Dinçer
Sep 08, 2013
darkofpain
Sep 10, 2013
erdem
Sep 10, 2013
Salih Dinçer
February 19, 2013

https://github.com/repeatedly/ltsv-d

struct ApacheLog
{
   string host, ident, user, time, req, referer, ua;
   size_t size, status;
}

/// convert into struct or class directly
auto record = fromLTSV!ApacheLog(apacheLog);
assert(record.host == "127.0.0.1");
assert(record.size == 777);

Alıntı ("Sample"):

>
> import ltsv;
>
> immutable apacheLog = "host:127.0.0.1\tident:-\tuser:foo\ttime:[10/Oct/2000:13:55:36 -0700]\t"
>                       "req:GET /apache.gif HTTP/1.0\tstatus:200\tsize:777\t"
>                       "referer:http://www.example.com/start.html\t"
>                       "ua:Mozilla/4.08 [en] (Win98; I ;Nav)";
>
> auto record = fromLTSV(apacheLog);
> assert(record["host"] == "127.0.0.1");
> assert(record["size"] == "700");
> ```

>

-- 
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]
September 09, 2013

Merhaba Salih Dinçer,

Apache LTSV tam olarak nedir ? acaba açıklayabilirmisiniz. Dikkatimi çeken gelen parametler HTTP Başlıkları.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 10, 2013

LTSV ("Labeled Tab-separated Values") yani işaretlenmiş, boşlukla ayrılan değerler diye çevirebiliriz. Burada boşluk derken TAB tuşu kasdediliyor.

Bunu html gibi bir işaretleme dili gibi düşünebiliriz. Apache gibi sunucu üzerinde çalışan yazılımlarının kayıt kütüklerini tutmak için kullanılıyor.

Örneğin:

'host:127.0.0.1ident:-user:franktime:[10/Oct/2000:13:55:36 -0700]req:GET /apache_pb.gif HTTP/1.0status:200size:2326referer:http://www.example.com/start.htmlua:Mozilla/4.08 [en] (Win98; I ;Nav)'

Anladığım kadarıyla bu kütüphane de bu çeteleleri okumak için kolaylık sağlıyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 10, 2013

Şöyle de düşünebiliriz...

Hani 'web script'lerde ortam değişkenleri (environment variables) vardır ve bunları basit bir şekilde (örneğin PHP'de $_ENV çağrışımsal dizisi ile) okur. Burada ise kendi oluşturduğunuz yapıya uyarlayabileceğiniz (integration) bir şablonlar beraber yine tıpkı PHP'de olduğu gibi, tüm ortam değişkenlerine çağrışımsal dizi (associative array) vasıtasıyla erişebilmemizi sağlıyor.

Belki vibe.d gibi bir çatı kullandığınızda böyle bir şeye ihtiyacınız yoktur ama "socket programming" yaparken bazı kolaylıkları da bu şekilde kullanmak isteyebilirsiniz.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]