Thường khi tôi viết mã, tôi chỉ muốn in những thứ nhỏ (chủ yếu là giá trị hiện tại của biến) ra bàn điều khiển. Tôi không thấy bất cứ điều gì như thế này cho Google App Engine, mặc dù tôi lưu ý rằng Trình khởi chạy ứng dụng Google không có thiết bị đầu cuối Đăng nhập. Có cách nào để viết cho Thiết bị đầu cuối đã nói hay với một số thiết bị đầu cuối khác, sử dụng Google App Engine không?Làm cách nào để ghi vào bảng điều khiển trong Google App Engine?
Trả lời
Bạn sẽ muốn sử dụng mô-đun chuẩn logging
của Python.
import logging
logging.info("hello")
logging.debug("hi") # this won't show up by default
Để xem các cuộc gọi đến logging.debug()
trong GoogleAppEngineLauncher Logs console, trước tiên bạn phải thêm cờ --dev_appserver_log_level=debug
để ứng dụng của bạn. Tuy nhiên, hãy cẩn thận rằng bạn sẽ thấy rất nhiều tiếng ồn gỡ rối từ bản thân App Engine SDK. Các full set of levels là:
debug
info
warning
error
critical
Bạn có thể thêm lá cờ bằng cách nhấp đúp ứng dụng và sau đó thả nó vào Cờ bổ sung trường.
Xem https://cloud.google.com/appengine/docs/python/requests#Python_Logging
và http://docs.python.org/library/logging.html
Bạn có thể muốn sử dụng cái gì đó như:
logging.debug("value of my var is %s", str(var))
Làm thế nào tôi có thể làm điều tương tự trong java? – Manjoor
Bạn rất có thể muốn sử dụng logging.info() thay vì logging.debug() vì mức ghi mặc định trong bảng điều khiển Nhật ký GoogleAppEngineLauncher là bạn sẽ không thấy bất kỳ lệnh gọi nào để logging.debug(). –
Liên kết đầu tiên tới Ghi nhật ký cho Python GAE bị hỏng. Nó sẽ được cập nhật thành https://cloud.google.com/appengine/docs/python/requests#Python_Logging –
Bạn cũng nên cung cấp cho FirePython một cái nhìn. Nó cho phép bạn nhận được thông báo nhật ký máy chủ trong firebug.
http://appengine-cookbook.appspot.com/recipe/firepython-logger-console-inside-firebug/
@Manjoor
Bạn có thể làm điều tương tự trong java.
import java.util.logging.Logger;
// ...
public class MyServlet extends HttpServlet {
private static final Logger log = Logger.getLogger(MyServlet.class.getName());
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
log.info("An informational message.");
log.warning("A warning message.");
log.severe("An error message.");
}
}
Xem "Logging" trong http://code.google.com/appengine/docs/java/runtime.html
Kiểm tra phiên dịch trực tuyến Python của tôi chạy trên Google App Engine trên trang web của tôi, Learn Python. Nó có thể là những gì bạn đang tìm kiếm. Chỉ cần sử dụng print repr (biến) trên những thứ bạn muốn xem và thực thi bao nhiêu lần tùy thích.
GAE sẽ chụp sai số chuẩn và in nó ra cửa sổ Console hoặc một bản ghi.
print >> sys.stderr, "Something to log."
Sử dụng log.setLevel (Level.ALL) để xem thông điệp
Mức lọc nhắn mặc định có vẻ là 'lỗi'. Tôi không thấy bất kỳ thông điệp tường trình hữu ích nào cho đến khi tôi sử dụng phương thức setLevel() để làm cho thông điệp .info và .warning hiển thị.
Văn bản được in tới System.out cũng không hiển thị. Dường như nó được hiểu là các messaages mức log.info().
Xin chào Tôi đang sử dụng phiên bản 1.8.6 của GoogleAppEngineLauncher, bạn có thể sử dụng một lá cờ để thiết lập các thông điệp log mức độ bạn muốn xem, ví dụ cho thông điệp debug:
--dev_appserver_log_level debug
Sử dụng nó thay vì --debug
(xem câu trả lời của @Christopher).
Nếu bạn đang sử dụng một phiên bản mới hơn của sự phát triển máy chủ Python (phiên bản> 1.7.6, hoặc tháng 3 năm 2013 và sau này), nhưng dường như là bước đi đúng đắn để sử dụng:
Bao gồm sau trong kịch bản của bạn,
import logging logging.debug("something I want to log")
và mỗi this docs page, thiết lập một lá cờ bằng cách vào Edit> cài đặt ứng dụng> cài đặt Launch> thêm Command Line Flags, và thêm,
--log_level=debug
Tôi hy vọng tôi đang trả lời các câu hỏi. Các thông điệp ghi nhật ký in vào nhật ký AppEngine thay vì thiết bị đầu cuối.
Bạn có thể khởi động nó by clicking on the logs button of the AppEngine Launcher
Đây là phản hồi hữu ích nhất. Nó xứng đáng được thông báo – zehelvion
Theo [câu trả lời gần đây hơn] (http://stackoverflow.com/a/22467787/346561), bạn nên sử dụng cờ bổ sung '--log_level = debug' thay vì' --debug'. –
Cảm ơn, @JesseWebb. Đã cập nhật. –