Назад | Перейти на главную страницу

Пользовательский формат журнала Apache

Я пытаюсь написать систему вознаграждения, в которой пользователям будут начисляться баллы, если они загрузят полные файлы. Итак, каким должен быть формат моего журнала.

После большого количества поисков я понял, что это мой первый раз, и раньше я не делал пользовательских журналов.

Прежде всего какой файл мне отредактировать для пользовательских журналов, потому что я не могу найти эту вещь. Я использую сервер ubuntu с установкой apache, php5 и mysql по умолчанию

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

Я думаю, это то, что мне нужно сделать для моей цели

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

Это как команда или чего-то не хватает? и есть ли какое-то конкретное место, куда мне нужно это добавить?

и вот еще %o предназначен для файла, который был отправлен, и можно ли регистрировать только файлы из определенного каталога? или для файлов размером более 10 МБ.

Спасибо.

Документы сервера Apache - ваш друг: http://httpd.apache.org/docs/2.1/mod/mod_log_config.html#customlog

Записи CustomLog находятся либо в глобальной области, либо в виртуальных хостах. В Ubuntu у вас должны быть каталоги sites-available и sites-enabled. Если вы не используете виртуальные хосты, это должно быть в файле / etc / apache2 / sites-availabe / default.

Насколько я могу судить, вы не можете создавать собственные журналы для каждого каталога, но это не должно быть слишком сложно сделать с тем, что вы используете для анализа журналов apache.

Задумывались ли вы об использовании веб-платформы для обработки загрузок, а также регистрации этих загрузок в базе данных? Для этого Apache кажется громоздким.

Вот пример в Майна но вы можете сделать что-то подобное в PHP, ColdFusion и т. д .:

пример ссылки:

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

Страница 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);