Symfony 1.4.8에서 작동하도록 dev 환경 로그를 얻는 데 문제가 있습니다. 한편 환경 친화적 인 환경의 로그는 동일한 설정으로 완벽하게 작동합니다. 내 dev 환경에 무슨 문제가 있는지 잘 모르겠습니다.Symfony 1.4 dev 로깅이 작동하지 않음
아이디어는 다음과 같은 코드를 사용하여 작업 및 템플릿 파일에 메시지를 기록하는 것입니다
sfContext::getInstance()->getLogger()->err('Error Message Here!!!');
그러나, 오류 메시지가 dev에 환경에서 frontend_dev.log에 나타나지 않았다. 로깅을 활성화하기 위해 settings.yml 및 factories.yml을 수정했습니다. 심포니 캐시와 로그를 삭제했습니다. 이상한 이유로 symfony는 로그를 삭제 한 후 (dev_name을 삭제 한 후) dev 환경에 새로운 frontend_dev.log를 생성하지 않았습니다. 반면, prod 환경에서는 symfony가 clear logs 명령을 수행 한 후 빈 frontend_prod.log를 생성했습니다. 나는 이것이 무엇을 일으켰는지, 그리고 이것이 dev 환경에서 작동하지 않는 로깅과 관련이 있는지 확신하지 못한다. 여기
내 settings.yml의 설정하고가 settings.yml factories.yml :이
prod:
.settings:
no_script_name: true
logging_enabled: true
cache: false
etag: false
dev:
.settings:
error_reporting: <?php echo (E_ALL | E_STRICT)."\n" ?>
logging_enabled: true
web_debug: true
cache: false
no_script_name: false
etag: false
factories.yml :
prod:
# logger:
# class: sfNoLogger
# param:
# level: err
# loggers: ~
logger:
class: sfAggregateLogger
param:
level: err
loggers:
sf_web_debug:
class: sfWebDebugLogger
param:
level: debug
condition: %SF_WEB_DEBUG%
xdebug_logging: true
web_debug_class: sfWebDebug
sf_file_debug:
class: sfFileLogger
param:
level: debug
file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log
dev:
mailer:
param:
delivery_strategy: none
logger:
class: sfAggregateLogger
param:
level: debug
loggers:
sf_web_debug:
class: sfWebDebugLogger
param:
level: debug
condition: %SF_WEB_DEBUG%
xdebug_logging: true
web_debug_class: sfWebDebug
sf_file_debug:
class: sfFileLogger
param:
level: debug
file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log
저를주세요 내가 뭘 잘못하고 있는지 알아. 고맙습니다. 나는 또한 호출 시도했다
actions.class.php
$this->logMessage('ErrorMessageHere', 'err');
같은 결과에 다음, 내가 아니라 dev에 환경의 자극 환경에서 오류 메시지를 가지고 : 업데이트
.
또한 오류가 나타나지 않았다 및 로그 폴더가 올바른 권한을 가진 것 같습니다
php symfony project:permission
>> chmod 777 /var/www/ac2/web/uploads
>> chmod 777 /var/www/ac2/cache
>> chmod 777 /var/www/ac2/log
>> chmod 777 /var/www/ac2/symfony
>> chmod 777 /var/www/ac2/cache/frontend
......
drwxrwxrwx 2 www-data www-data 4096 2011-11-16 11:51 log
를 호출하여 권한을 재설정했습니다. 같은 일이 벌어졌습니다. dev 환경에서는 symfony가 로그 파일 frontend_dev.log를 만들지 않았지만 로그를 지운 후에는 prod 모드에서 빈 frontend_prod.log를 만들었습니다.
<?php
// this check prevents access to debug front controllers that are deployed by accident to production servers.
// feel free to remove this, extend it or make something more sophisticated.
if (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1', '192.168.1.55')))
{
die('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);
sfContext::createInstance($configuration)->dispatch();
업데이트 2 :
이 내 frontend_dev.php입니다 난 그냥 dev에와 자극 환경에서 내 로그에 뭔가 흥미로운 것을 발견
.
내 symfony 프로젝트에는 많은 모듈이 있습니다. 액션과 템플릿 모두에서 2 개의 모듈 로깅 메시지를 테스트했습니다. 그러나 오늘 흥미로운 사건을 발견했습니다. 다른 모듈에서 테스트했을 때, dev 환경에서 오류 메시지가 나타났습니다. 그리고 4-5 모듈에 오류 로그를 삽입하면 일부 로그가 frontend_dev.log에 나타나고 다른 로그는 frontend_prod.log에 나타납니다. 캐시 지우기 및 로그 지우기를 시도했습니다. 여전히 동일한 모듈이 frontend_dev.log에서 오류를 생성하고 다른 모듈은 frontend_prod에서 오류를 생성합니다.예를 들어
로그 : I는 /web/index.php에 자극 환경을 활성화하고 4 개 개의 모듈
$this->logMessage('errortest1', 'err');
$this->logMessage('errortest2', 'err');
$this->logMessage('errortest3', 'err');
$this->logMessage('errortest4', 'err');
I 두 디바이스를 사용하는 경우에 4 가지 actions.class.php에 다음 에러 로그 코드를 삽입 prod 환경에서 로깅 오류가 발생합니다. errortest1과 errortest2가 frontend_dev.log에 나타나고 errortest3과 errortest4가 frontend_prod.log에 나타납니다. prod 환경에서만 오류 기록을 사용하도록 설정 한 경우. frontend_dev.log는 비어 있으며 frontend_prod.log에 errortest3과 errortest4가 나타납니다. dev 환경에서만 dev 오류 로깅을 활성화하면 가능합니다. errortest1 및 errortest2이 frontend_dev.log에 표시되며 frontend_prod.log이
그래서 내가 무슨 일이 일어나고 있는지 확실하지 않다 비어있을 것입니다, 내 심포니 프로젝트가 손상있어나요?
거기에는 오류가 없습니다. 당신/로그 폴더의 허락을 확인해보십시오. – samura
참고로, 당신의 행동에서 이것을 사용하여 메시지를 기록하십시오 : $ this-> logMessage ("Error!", "err"). 액션에서 sfContext 싱글 톤 클래스를 다시 인스턴스 화하지 마십시오. – Flukey
도와 주셔서 감사합니다. "php symfony project : permission"을 호출하여 프로젝트 권한을 재설정했습니다. 나는 "$ this-> logMessage ('ErrorMessage', 'err'); 같은 결과를 얻었으나 prod 환경에서는 오류가 있지만 dev 환경에서는 오류 메시지를 얻을 수 없었다. dev_debug 및 prod_debug 규칙을 살펴볼 것이다. – TSCOconan