Możesz natknąć się na kod błędu wskazujący na bieżący dziennik debugowania django runserver. Istnieje kilka zasad, które możesz zastosować, aby rozwiązać ten problem, ale jesteśmy na dobrej drodze.
Zatwierdzono: Fortect
Nie odpowiedź, której szukasz? Przeglądaj inne otagowane pytania za pomocą Pythona Django lub zadaj własne pytanie.
Tekst widziany na stderr może pojawić się w znaku błędu httpd po uruchomieniu pod mod_wsgi. Możesz w równym stopniu korzystać z funkcji print
bezpośrednio lub wspomagać rejestrowanie
.
print >> sys.stderr, 'Żegnaj okrutny świecie!'
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
Odpowiedział grudzień 2010 o 23:48
709k
Tutaj jest rozważane rozwiązanie oparte na logowaniu Django. Wykorzystuje metodę DEBUG zamiast sprawdzania, czy klienci są na serwerze programistycznym, czy nie, ale jeśli możesz znaleźć lepszy sposób, aby się dowiedzieć, powinien być łatwy w użyciu.
REJESTRACJA = 'Wersja 1, 'Dawny' : 'Szczegół': 'format': '% (nazwa poziomu) s% (asctime) s% (moduł) s% (proces) d% (strumień) d% (wiadomość) s' , 'Lekki': 'format': '% (nazwa poziomu) s% (wiadomość) s' , , "Administrator": 'Konsola': 'poziom': 'DEBUGOWANIE', 'Klasa': 'logging.StreamHandler', „trener”: „prosty” , "Do pliku": 'poziom': 'DEBUGOWANIE', 'Klasa': 'logging.FileHandler', 'Nazwa pliku': '/Ścieżka/do/Twój/Fichier.log', „trener”: „prosty” , , "Rejestrator": „Django”: "Menedżer": ["Plik"], 'poziom': 'DEBUGOWANIE', „rozpowszechniać”: ok, , jeśli DEBUGOWANIE: Numer umożliwia wszystkim rejestratorom korzystanie z konsoli. dla rejestratorów w REJESTROWANIU ['logger']: REJESTRACJA ['logger'] [loggery] ['handlers'] = ['console']
odpowiedział 14 kwietnia ’12 tylko o 17:19
7.955
jeśli DEBUGOWANIE: Zakres zostanie wyświetlony na konsoli Logowanie.podstawowa konfiguracja ( Poziom dziennika = .DEBUG, format oznacza, że '% (asctime) s% (nazwa poziomu) s% (wiadomość) s', )inne: # jest zwykle wypisywany, aby pomóc zapisać plik Logowanie.podstawowa konfiguracja ( Logowanie = .DEBUGOWANIE, format '% (asctime) vertisements =% (nazwa poziomu) s% (wiadomość) s', Nazwa pliku jest równa '/my_journal_file.log', Tryb pliku = „a” )
To zależy od tego, jak decydujący jest DEBUG, a także od , może nie musisz się martwić o to, jak dokładnie jest zbudowany. Zobacz odpowiedź na zmartwienie Skąd mam wiedzieć, czy moje Django jest łatwo rozwijane na serwerze, czy mało prawdopodobne? dostępne dla lepszej pisowni w razie potrzeby. Edycja: Powyższy przykład jest zaczerpnięty z kompletnego projektu Django 1.1, odniesienie do dziennika konfiguracji w Django wpłynęło nieznacznie na wersję.
[rejestrator]klucze to root, dziennik aplikacji[Administrator]klucze = rotateFileHandler, rotateConsoleHandler[Dawny]klucze są równe applog_format, console_format[formatter_applog_format]format =% (asctime) s - [% (nazwa poziomu) -8s]:% (wiadomość) s[format_konsoli_formatu]format =% (asctime) s -% (nazwa pliku) s% (len) d [% (nazwa poziomu) s]:% (wiadomość) s[logger_root]poziom oznacza DEBUGOWANIEhandlers = rotateFileHandler, rotateConsoleHandler[logger_applog]poziom = DEBUGUJhandlers równa się rotateFileHandlerqualname = prosty_przykład[handler_rotateFileHandler]class = handlers.RotatingFileHandlerpoziom = DEBUGUJtrainer oznacza applog_formatargumenty = ('applog.log', 'a', 10000, 9)[handler_rotateConsoleHandler]klasa = StreamHandlerpoziom równa się DEBUGtrainer = format_konsoliargumenty = (sys.stdout,)
Importuj logowanieImportuj plik Logging.configgłówne wyjście (): Logging.config.fileConfig ('logging.conf') Rejestrator jest taki sam jak Logging.getLogger ('applog') logger.debug ("komunikat o naprawieniu błędu") logger.info ("wiadomość informacyjna") logger.warn ('komunikat ostrzegawczy') korespondencja z dyktafonem”) error ('error logger.critical (' krytyczny temat ') # rekord.stop ()if __name__ == '__main__': ponad wszystko()
odpowiedzDano 15 czerwca 2013 r., przechodząc do 3:30.
Podczas gdy zwykły moduł Pythona zapisuje do tematu pliku otwartego w trybie dodawania, na przykład kurs App Engine (https://github.com/dorkitude/tagalog/blob/master/tagalog_appengine.py) zastępuje to zachowanie i Zobacz dodatkowo , Logowanie used.INFO
.Get
Aby zmienić to zachowanie w dowolnym dobrym projekcie App Engine, możesz łatwo wykonać następujące czynności:
Importuj
tagalog.tagalog_appengine jako tagalogtagalog.log ('cokolwiek jest wiadomość', ['cokolwiek', 'tagi'])
Możesz samodzielnie rozciągnąć moduł, a następnie bez większych trudności zmiażdżyć drewno.
odpowiedział 13 stycznia ’11 zlokalizowany o 9:11
8.505 22 złote odznaki 3232 srebrne sztabki 3636 brązowych odznak
To zadanie stało się wystarczająco dobre w moim local.py, oszczędzając mnie dzięki regularnej konserwacji Magazyn:
wyprodukowany przez .settings *LOG ['menedżerowie'] ['console'] scan = 'poziom': 'DEBUGOWANIE', 'Klasa': 'logging.StreamHandler', 'trener': 'szczegółowe'LOG ['logger'] ['foo.bar'] = "Menedżer": ["Konsola"], 'rozprzestrzenianie': fałszywe 'poziom': 'DEBUGOWANIE',
odpowiedział 10 czerwca ’15 o 10:37
Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu.