Tag: 日志

如何loggingpythonexception?

我如何在Python中loggingexception? 我看了一些选项,发现我可以使用这段代码访问实际的exception详细信息: import sys import traceback try: 1/0 except: exc_type, exc_value, exc_traceback = sys.exc_info() traceback.print_exception(exc_type, exc_value, exc_traceback) 我想以某种方式得到stringprint_exception()抛出到标准输出,以便我可以logging它。

Code to logging ratio?

什么是logging比率的理想代码? 我不习惯写日志,因为我开发的大多数应用程序都没有太多的日志logging。 最近虽然我已经改变了工作,并且我注意到你看不到调用log4net的应用程序代码。 我明白,这是有用的,但肯定有太多的debugging语句是一样糟糕,根本没有任何? 有logging语句告诉你什么时候每个方法开始和结束以及它们返回什么。 几乎什么都做完了。 在编译时使用reflection来添加日志语句的插件会不会更容易,所以当您试图查看代码时,它们并没有妨碍您的工作。 同样在这些强大的IDE和远程debugging的日子,那么多日志logging真的nescisary?

如何确定使用什么日志级别?

日志级别WARN,ERROR和FATAL非常清晰。 但是什么时候是DEBUG,什么时候INFO? 我已经看到一些在INFO级别上烦人的项目,但是我也看到了一些有利于DEBUG级别的代码。 在这两种情况下,有用的信息都隐藏在噪声中。 什么是确定日志水平的标准?

logging来自python-requests模块的所有请求

我正在使用python 请求 。 我需要debugging一些OAuth活动,为此我希望它logging所有正在执行的请求。 我可以通过ngrep获取这些信息,但不幸的是,不能grep https连接(这是OAuth所需的) 如何激活日志loggingRequests正在访问的所有URL(+参数)?

日志文件在哪里存储使用cocoaLumberjack

我正在使用cocoaLumberjack日志框架进行iOS日志logging。 为了将日志存储在文件中,我使用了这个代码。 DDFileLogger* fileLogger = [[DDFileLogger alloc] init]; fileLogger.rollingFrequency = 60 * 60 * 24; fileLogger.logFileManager.maximumNumberOfLogFiles = 7; [DDLog addLogger:fileLogger]; DDLogVerbose(@"hello"); NSLog(@"hihihihihi"); 我无法find该代码生成的日志文件的确切位置。 有人可以帮我解决这个问题吗?

如何将Flask出色的debugging日志消息写入生产中的文件?

我有一个Flask应用程序运行良好,并产生偶尔的错误。 当我的应用程序在debugging模式下使用: if __name__ == '__main__': app.run(debug=True) 我收到了有用的错误消息,如: Traceback (most recent call last): File "./main.py", line 871, in index_route KeyError: 'stateIIIII' 当我在生产环境中运行应用程序(使用Lighttpd + fastcgi)时,我希望将这些错误消息保存到文件中。 查看了各种StackOverflow问题后, http: //flask.pocoo.org/docs/errorhandling/,http://docs.python.org/2/library/logging.html,Flask邮件列表和一些博客,似乎没有“简单”的方法来发送所有伟大的错误消息到一个文件 – 我需要使用Python日志logging模块来定制的东西。 所以我想出了下面的代码。 在我的应用程序文件的顶部,我有各种import,其次是: app = Flask(__name__) if app.debug is not True: import logging from logging.handlers import RotatingFileHandler file_handler = RotatingFileHandler('python.log', maxBytes=1024 * 1024 * 100, backupCount=20) file_handler.setLevel(logging.ERROR) […]

禁用NHibernate日志logging

我有一个空的 app.config文件,但我仍然得到NHibernatedebugging日志 NHibernate: SELECT this_.LogID as LogID71_0_, this_.Level as Level71_0_, this_.Message as Message71_0_, this_.EventTime as EventTime71_0_, this_.Component as … 我尝试添加一个ERROR日志级别的log4netconfiguration,但没有用。 我怎样才能停止这些日志消息? 我感到困惑的是为什么这些出现在第一个地方,如果我有一个空的app.config。 对我来说这是没有意义的,我必须configuration它不打印这些消息 – 默认应该closures。 难道是我的代码是以编程方式设置它们吗? 我该找什么?

如何安全地包装`console.log`?

假设我想包含一些调用console.log的一些合法的生产原因,比如说unit testing工具。 显然,如果浏览器没有console ,或者没有控制台 ,我不希望这个引发过早的exception。 创build一个简单的logfunction将日志logging到控制台的最好方法是什么,或者如果没有控制台存在,就会在没有错误的情况下悄然失败? 上面提到的问题被接受的答案是: var log = Function.prototype.bind.call(console.log, console); log.apply(console, ["this", "is", "a", "test"]); 这个logfunction可以在IE上正常调用,这里的apply只是为了显示它是可能的? 而且,我从关联的问题中推测,如果IE的控制台在运行时closures,那么这样做会失败,所以即使在控制台打开后, log也不能正常工作。 如果这是错的,有人可以解释它是如何工作的? 这ycombinator文章似乎相关。 他们是否正在谈论与上面链接的问题相同的IE行为? Function.prototype.apply.apply(console.log, [console, arguments]); 在IE9破坏console.log和其他供应商的常规console.log上都可以。 与使用Array.prototype.slice将参数转换为实数组相同。 这在我的Chrome控制台中很好地工作。 function echo(){ Function.prototype.apply.apply(console.log, [console, arguments]); } 简化: function echo(){ Function.apply.call(console.log, console, arguments); } 添加支票并返回: function echo(){ return window.console && console.log && Function.apply.call(console.log, console, arguments); } 上面的例子对我来说足够了。 […]

如何configurationlog4j将不同的日志级别logging到同一个logging器的不同文件中

我有一个正常的应用程序INFO级别日志。 我需要的是另外logging所有ERROR级别的事件,以单独的错误日志。 我正在使用这样的configuration: <logger name="com.acme"> <level value="error"/> <appender-ref ref="error"/> </logger> <logger name="com.acme"> <level value="info"/> </logger> <root> <level value="warn"/> <appender-ref ref="general"/> </root> 此configuration仅logging错误。 如果我先放置信息级别logging器,那么它只会logging到一般的appender,但错误logging器将不起作用。 我想让他们都工作。

以编程方式更改log4net日志logging级别

这与650694类似,但是没有答案被接受,我根本得不到任何这些build议,我怀疑我可能会有一点点不同的情况。 我打电话给log4net.Config.XmlConfigurator.Configure()。 但是在程序中的那个点之后,我想把日志logging的阈值改变成仅在运行时已知的值。 从另外一个问题,我尝试了: ((log4net.Repository.Hierarchy.Logger)mylogger.Logger).Level = log4net.Core.Level.Error; 和: var appender = new log4net.Appender.ColoredConsoleAppender(); appender.Layout = new log4net.Layout.PatternLayout(@"%date %-5level %message%newline"); appender.Threshold = log4net.Core.Level.Error; appender.ActivateOptions(); log4net.Config.BasicConfigurator.Configure(appender); 但似乎没有任何影响:我仍然在控制台上看到DEBUG和INFO日志语句。 我的直觉是我添加了一个新的appender,它对XMLconfiguration中声明的appender没有影响(它告诉它打印DEBUG级别的消息),但是我还没有任何证据。 我一直在挖掘log4net API一段时间,而我只是没有看到它。 有没有简单的我失踪?