Formato de log personalizado do Apache

1

Estou tentando criar um sistema de recompensas em que os usuários receberão pontos de recompensa se baixarem arquivos completos. Então, qual deve ser meu formato de registro?

Depois de pesquisar muito, é isso que entendo pela primeira vez e não fiz registros personalizados antes.

Primeiro, qual arquivo devo editar para registros personalizados, porque isso não consigo encontrar. Eu estou usando o servidor Ubuntu com o padrão apache, php5 e instalação mysql

# I use this commands and they work fine  
nano /etc/apache2/apache2.conf
/etc/init.d/apache2 restart

Eu acho que isso é o que eu preciso fazer para o meu propósito

LogLevel notice
LogFormat "%f %u %x %o" rewards
CustomLog /var/www/logs/rewards_log rewards

Isto é como se fosse um comando ou algo está faltando? e existe algum local em particular onde eu precise adicionar isso?

e mais uma coisa %o é para o tamanho do arquivo que foi enviado e é possível registrar apenas arquivos de um diretório específico? ou para arquivos com tamanho superior a 10mb.

Obrigado.

    
por Shishant 11.03.2010 / 20:35

1 resposta

1

Os documentos do servidor Apache são seus amigos: link

As entradas do CustomLog estão no escopo global ou nos hosts virtuais. No Ubuntu, você deve ter um diretório disponível para sites e sites. Se você não estiver usando hosts virtuais, isso deve estar no arquivo / etc / apache2 / sites-availabe / default

Tanto quanto eu posso dizer, você não pode fazer logs personalizados por diretório, mas isso não deve ser muito difícil de fazer com o que você está usando para analisar os logs do apache

Você já pensou em usar uma plataforma da web para lidar com downloads e também registrar esses downloads em um banco de dados? O Apache parece complicado para isso.

Aqui está um exemplo em Myna , mas você pode fazer algo semelhante em PHP, ColdFusion, etc:

link de exemplo:

    <a href="/myna/download.sjs?f=somefile.pdf">

A página download.sjs:

    // assumes a table a called "downloads" in the database "my_app" 
    // also assumes that the user has authenticated and has auth cookie

    var downloads = new Myna.DataManager("my_app").getManager("downloads")

    //clean the filename
    var filename = $req.rawData.f.replace(/\.\.\//g,"");
    //get the data...should really check for failure here
    var data = new Myna.File("file:/var/files/" + filename).readBinary();

    //log the download to the DB
    downloads.create({
        userid:$cookie.getAuthUserId(),
        filename:f,
        ts:new Date()
    })

    //send the binary data to the browser
    $res.prinBinary(data,"application/octet-stream",filename);
    
por 11.03.2010 / 22:56