Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> catalyst Debug 
V
    Опции темы
gcc
Дата 11.12.2010, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



поставил Catalyst на хостинг, ничего не менял

хочу посмотреть отладку, все что он пишет, но в файлах error.log ничего нету!
на хостинге apache20
на серверах freebsd,linux такого не было... все с отлдки было в error.log

как получить логи, все что он пишет логирует??

ЗЫ: интересует выремя выполнение.

UPD:

он пишет в общий лог, а не в лог-файл сайта

как заставить его писать в лог-файл сайта или в файл какой-то? 

Код

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::Apache2::MP20"
[debug] Found home "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp"
[debug] Loaded Config "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class                                                           | Type     |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root                                         | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private              | Class                                | Method       |
+----------------------+--------------------------------------+--------------+
| /privet              | MyApp::Controller::Root              | privet       |
| /default             | MyApp::Controller::Root              | default      |
| /end                 | MyApp::Controller::Root              | end          |
| /index               | MyApp::Controller::Root              | index        |
'----------------------+--------------------------------------+--------------'

[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path                                | Private                              |
+-------------------------------------+--------------------------------------+
| /                                   | /index                               |
| /                                   | /default                             |
| /privet                             | /privet                              |
'-------------------------------------+--------------------------------------'

[info] MyApp powered by Catalyst 5.80029


Это сообщение отредактировал(а) gcc - 11.12.2010, 18:42
PM WWW ICQ Skype GTalk Jabber   Вверх
NuINu
Дата 12.12.2010, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 19.7.2008

Репутация: 1
Всего: 6



разреши владельцу процесса апач писать в этот файл ), этого достаточно

опс, сори, у каталиста ведь свой веб сервер? ну вообщем юзеру от имени которого запускается веб процесс надо дать права на запись.

Это сообщение отредактировал(а) NuINu - 12.12.2010, 21:36
PM MAIL   Вверх
gcc
Дата 12.12.2010, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



у каталиста есть свой веб-сервер, НО сейчас он работает в apache20 в режиме mod_perl
и он "строчит" все в общий лог, на сервере есть php, много сайтов, пользователей и все другие...

можно ли заставить его писать логи в файл?

...нужно же смотреть отладку, все то что он пишет.


Это сообщение отредактировал(а) gcc - 12.12.2010, 21:59
PM WWW ICQ Skype GTalk Jabber   Вверх
NuINu
Дата 12.12.2010, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 19.7.2008

Репутация: 1
Всего: 6



можно узнать как ты открываешь error.log  в каталисте

юзаешь вот этот модуль? Catalyst::Plugin::Log::Handler

при записи в лог файл с веб сервера возникают только две проблемы: 1) нет прав доступа на запись у владельца процесса.
2) поскольку веб процесс может запускаться в chroot  окружении - неправильно указан путь доступа к файлу

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

собственно разницы никакйо нет запускается ли он отдельным процессом или через мод перл аппача, главное КТО  запустил это приложение.
еще раз - ПРОВЕРЬ ПРАВА у запустившего процесс. может ли он записывать в фалй еррор лог?



PM MAIL   Вверх
gcc
Дата 1.1.2011, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



NuINu

кстати, эта проблема еще есть!
права, проверили, все нормально.

тут http://search.cpan.org/~pepe/Catalyst-Plug.../Log/Handler.pm

конфиг, стоит в YAML

в YAML выдает ошибку:

Код

[Sat Jan 01 07:07:48 2011] [error] Could not load class (Catalyst::Plugin::Config::YAM) because : Can't locate Catalyst/Plugin/Config/YAM.pm in.
@INC (@INC contains: /usr/local/www/catalyst/data/www/MyApp/rootlib /home/data4/MyApp/rootlib /usr/local/www/catalyst/data/www/MyApp/lib.
/usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /
usr/local/lib/perl5/5.8.9 . /usr/local) at /usr/local/lib/perl5/site_perl/5.8.9/mach/Class/MOP.pm line 134.\n at.
/usr/local/lib/perl5/site_perl/5.8.9/mach/Class/MOP.pm line 120\n\tClass::MOP::load_first_existing_class('Catalyst::Plugin::Config::YAM') 
 called at /usr/local/lib/perl5/site_perl/5.8.9/mach/Class/MOP.pm line 140\n\tClass::MOP::load_class('Catalyst::Plugin::Config::YAM').
 called at /usr/local/lib/perl5/site_perl/5.8.9/Catalyst.pm line 2506\n\tCatalyst::setup_plugins('MyApp', 'ARRAY(0x91db030)') called at.
 /usr/local/lib/perl5/site_perl/5.8.9/Catalyst.pm line 1007\n\tCatalyst::setup('MyApp') called at.
 /usr/local/www/catalyst/data/www/MyApp/lib/MyApp.pm line 602\n\trequire MyApp.pm called at (eval 4) line 3\n\teval 'require MyApp\n;'.
 called at /usr/local/www/catalyst/data/www/MyApp/lib/MyApp.pm line 0\nCompilation failed in require at (eval 4) line 3.\n



а модуль стоит
Код

# pkg_info | grep bsdpan-Catalyst-Plugin-Config-YAML-0.04
bsdpan-Catalyst-Plugin-Config-YAML-0.04 Catalyst::Plugin::Config::YAML - Configure your Catalyst ap


Код

# pkg_info -L bsdpan-Catalyst-Plugin-Config-YAML-0.04
Information for bsdpan-Catalyst-Plugin-Config-YAML-0.04:

Files:
///usr/local/lib/perl5/5.8.9/man/man3/Catalyst::Plugin::Config::YAML.3
///usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Config/YAML.pm
///usr/local/lib/perl5/site_perl/5.8.9/mach/auto/Catalyst/Plugin/Config/YAML/.packlist



тут http://search.cpan.org/~pepe/Catalyst-Plug.../Log/Handler.pm
как это 
Код

  Log::Handler:
        file:
            filename: /var/log/myapp.log
            fileopen: 1
            mode: append
            newline: 1
 
написать в конфиге MyApp,pm, точно не знаю

пробовал
Код

use Catalyst qw/ -Debug .....................
                               Log::Handler
                               /;


Код

__PACKAGE__->config->{ 'Log::Handler' } =  {

  file => {
            filename => '/var/log/myapp.log',
            fileopen => 1,
            mode => 'append',
            newline => 1,
          }

};



вылетает:
Код

[Sat Jan 01 09:15:38 2011] [error] The following parameter was passed in the call to Log::Handler::Output::File::_validate but.
was not listed in the validation options: file\n at /usr/local/lib/perl5/site_perl/5.8.9/Log/Handler/Output/File.pm.
line 370\n\tLog::Handler::Output::File::_validate(undef, 'HASH(0x98c6b54)') called at /usr/local/lib/perl5/site_perl/5.8.9/Log/Handler/Output/File.pm.
line 219\n\tLog::Handler::Output::File::new('Log::Handler::Output::File', 'HASH(0x98c6b54)') called at /usr/local/lib/perl5/site_perl/5.8.9/Log/Handler.pm.
line 1522\n\tLog::Handler::_new_output('Log::Handler=HASH(0x9ce3934)', 'Log::Handler::Output::File', 'HASH(0x98d9928)', 'HASH(0x98c6b54)').
called at /usr/local/lib/perl5/site_perl/5.8.9/Log/Handler.pm line 1229\n\tLog::Handler::add('Log::Handler=HASH(0x9ce3934)', 'file', 'HASH(0x9cdacf8)').
called at /usr/local/lib/perl5/site_perl/5.8.9/Log/Handler.pm line 1192\n\tLog::Handler::new('Log::Handler', 'file', 'HASH(0x9cdacf8)').
called at /usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Log/Handler.pm line.
84\n\tCatalyst::Plugin::Log::Handler::Backend::new('Catalyst::Plugin::Log::Handler::Backend', 'HASH(0x91da85c)') called at.
/usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Log/Handler.pm line 24\n\tCatalyst::Plugin::Log::Handler::setup('MyApp') called at.
/usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Config/YAML.pm line 64\n\tCatalyst::Plugin::Config::YAML::setup('MyApp') called at.
/usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Captcha.pm line 19\n\tCatalyst::Plugin::Captcha::setup('MyApp') called at.
/usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Authentication.pm line 204\n\tCatalyst::Plugin::Authentication::setup('MyApp').
called at /usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Session.pm line 42\n\tCatalyst::Plugin::Session::setup('MyApp').
called at /usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Static/Simple.pm line 86\n\tCatalyst::Plugin::Static::Simple::setup('MyApp').
called at /usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/ConfigLoader.pm line 99\n\tCatalyst::Plugin::ConfigLoader::setup('MyApp').
called at /usr/local/lib/perl5/site_perl/5.8.9/Catalyst.pm line 1065\n\tCatalyst::setup('MyApp') called at /
usr/local/www/catalyst/data/www/MyApp/lib/MyApp.pm line 604\n\trequire MyApp.pm called at (eval 4) line 3\n\teval 'require MyApp\n;'.
called at /usr/local/www/catalyst/data/www/MyApp/lib/MyApp.pm line 0\nCompilation failed in require at (eval 4) line 3.\n








Это сообщение отредактировал(а) gcc - 1.1.2011, 10:27
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 1.1.2011, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



Log::Dispatch пропускает такие некоторые варнинги, очень много этого:
Код

MyApp is using the deprecated Catalyst::Base, update your application as this will be removed in the next major release at.
/usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Base.pm line 7.



Код

__PACKAGE__->config->{ 'Log::Dispatch' } = [
              {
                              class     => 'File',
                                                               name      => 'file',
                                                               mode      => '>>',
                          min_level => 0,

                                        filename  => '/home/myapp.log'
  }


min_level  - указывал по разному....





Это сообщение отредактировал(а) gcc - 1.1.2011, 10:51
PM WWW ICQ Skype GTalk Jabber   Вверх
NuINu
Дата 1.1.2011, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 19.7.2008

Репутация: 1
Всего: 6



про конфиг: в корне директории своего проект создаешь(или он автоматически создается - непомню) файл с названием проекта и расширением yml
там и прописываешь  эту фигню

Log::Handler:
        file:
            filename: /var/log/myapp.log
            fileopen: 1
            mode: append
            newline: 1

впрочем вот здесь ты указываешь имя конфига(в головном модуле эта запись): __PACKAGE__->config( name => 'MyApp' );
информацию о том какой форматер загрузить  ConfigLoader берет из расширения файла

как вообще пользоватья внешним конфигом прописано здесь:  perldoc Catalyst::Manual::Tutorial::MoreCatalystBasics


про ошибку ямл: чудес на свете не бывает! 
на первый взгляд модуль установлен, так же к нему есть путь в @INC. однако по факту не рабоатет. тогда проверь - может ли пользователь от имени которого ты запускаешь приложене прочитать файл:  /usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Config/YAML.pm
cat /usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Config/YAML.pm


соответсвенно нет смысла проверять права доступа к файлу /var/log/myapp.log - если приложение не считало инофрмацию о том что именно туда надо записывать лог.

кстати говоря, нет необходимости использовать ямл, я использовал стандартным Config::General

вот тут описано все о загрузке конфига perldoc Catalyst::Plugin::ConfigLoader::Manual
в том числе и о том как конвертировать из ямла в дженерал формат.

приложению или плагину какталиста все равно в каком формате храниться конфиг, каталист считывает информацию из файла и предоставляет его частям приложения в стандартном виде - в хеше контекста.

доступ к переменным твоего или не твоего конфига(как это написано в модуле Catalyst/Plugin/Log/Handler.pm):
my $config = $c->config->{'Log::Handler'} || {};
...

unless (exists $config->{filename}) {....

}


таким образом все просто: бери и любую конфигурационную информацию помещай во внешний конфиг.

Добавлено через 5 минут и 45 секунд
добавлю: если в директории будет несколько конфигов с одинаковым PACKAGE__->config( name => 'MyApp' ); <----- ИМЕНЕМ!!! фиг знает какой из них будет использоваться! так что прежде чем что то создать посмотри нет ли уже такого и удали при необходимости.

ну а то что ты писал про конфиги - все было не правильно, почаще читай документацию.

PM MAIL   Вверх
gcc
Дата 2.1.2011, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



NuINu, спасибо попробовал

еще чтобы полночтью, выключить я сделал так:
(можно конечно перенаправить и в файл, см. CGI::Carp)

MyApp -  заменить на свой
Код

package MyApp;

BEGIN { 

  *CORE::GLOBAL::die = \&MyApp::die;
}



$main::SIG{__WARN__}=\&MyApp::warn;




# These are the originals
sub realwarn { return 1 }
sub realdie { return 1 }



sub warn {
    my $message = shift;

    realwarn $message;
}



sub die {
  my ($arg,@rest) = @_;

  $arg = join '' => "$arg", @rest if @rest;

  $arg ||= 'Died';

  realdie $arg;
}



sub confess { MyApp::die Carp::longmess @_; }
sub croak   { MyApp::die Carp::shortmess @_; }
sub carp    { MyApp::warn Carp::shortmess @_; }
sub cluck   { MyApp::warn Carp::longmess @_; }




Это сообщение отредактировал(а) gcc - 2.1.2011, 16:45
PM WWW ICQ Skype GTalk Jabber   Вверх
vivu
Дата 13.2.2011, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 3.11.2009

Репутация: нет
Всего: нет



Попробуйте Log::Log4perl::Catalyst
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0860 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.