Questions tagged «logging»

计算机数据记录是在计算机程序或计算机系统中通常具有特定范围的事件记录过程,以便提供可用于了解系统活动和诊断问题的审核跟踪。确保除此标签外还包括适当的软件或硬件标签。

15
在ASP.NET MVC和IIS7中记录原始HTTP请求/响应
我正在编写一个Web服务(使用ASP.NET MVC),出于支持目的,我们希望能够以与原始在线格式(即包括HTTP)尽可能接近的方式记录请求和响应方法,路径,所有标头和正文)放入数据库。 我不确定如何以最少的“混杂”方式获取此数据。我可以通过检查HttpRequest对象的所有属性并从中构造一个字符串(并类似地用于响应)来重新构造我认为请求的外观,但我真的很想掌握实际的请求/响应数据电线上发送。 我很高兴使用任何拦截机制,例如过滤器,模块等,并且该解决方案可以特定于IIS7。但是,我宁愿仅将其保留在托管代码中。 有什么建议吗? 编辑:我注意到,HttpRequest有一种SaveAs方法可以将请求保存到磁盘,但是可以使用内部无法公开访问的内部帮助程序方法从内部状态重构请求(相当多的原因这不允许保存到用户提供的方法流,我不知道)。因此,开始看起来我必须尽力从对象中重建请求/响应文本……吟。 编辑2:请注意,我说了整个请求,包括方法,路径,标头等。当前响应仅查看不包含此信息的主体流。 编辑3:这里没有人阅读问题吗?到目前为止,有五个答案,但甚至没有人暗示一种获取整个原始在线请求的方法。是的,我知道我可以从请求对象中捕获输出流,标头,URL和所有其他内容。我已经在问题中说过,请参阅: 我可以通过检查HttpRequest对象的所有属性并从中构建一个字符串(以及类似的响应)来重新构造我认为的请求外观,但是我真的很想掌握实际的请求/响应数据是通过网络发送的。 如果您知道完全无法检索完整的原始数据(包括标题,URL,http方法等),那么这将很有用。同样,如果您知道如何以原始格式获取所有内容(是的,我仍然表示包括标头,url,http方法等),而无需重构(这就是我的要求),那么这将非常有用。但是告诉我可以从HttpRequest/ HttpResponse对象重建它没有用。我知道。我已经说过了 请注意:在任何人开始说这不是一个好主意,或将限制可伸缩性等之前,我们还将在分布式环境中实现限制,顺序交付和抗重播机制,因此无论如何都需要数据库日志记录。我不是在讨论关于这是否是一个好主意,我正在寻找如何做到这一点。


6
您可以用代码配置log4net而不使用配置文件吗?
我知道为什么log4net使用app.config文件来设置日志记录-因此您可以轻松更改信息的记录方式,而无需重新编译代码。但就我而言,我不想将app.config文件与可执行文件打包在一起。而且我不想修改我的日志记录设置。 有没有办法让我设置登录代码而不是使用app.config? 这是我的简单配置文件: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\EventLog.txt" /> <appendToFile value="false" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="1GB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="MemoryAppender" type="log4net.Appender.MemoryAppender"> </appender> …
136 c#  .net  logging  log4net 

7
Java Logging与Log4J [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 仍然值得将log4j库添加到Java 5项目中只是为了记录日志,例如具有一些不错的过渡设置的文件异常。还是标准的util.logging工具也可以完成这项工作? 你怎么看?

30
禁用HttpClient日志记录
我在集成测试套件中使用commons-httpclient 3.1。HttpClient的默认日志记录非常嘈杂,我似乎无法将其关闭。我已经尝试按照此处的说明进行操作,但是它们都没有任何区别。 通常,我只需要关闭org.apache.http.wire logger。问题的部分原因是我不知道HttpClient尝试使用哪种类型的记录器,并且大多数问题是我以前从未使用过此库。我尝试创建一个log4j.properties文件并将其放入我的test / resources文件夹中,在jre / lib中修改主logging.properties文件,并按照日志记录页面上的指定将各种日志记录选项发送到Maven ,但没有一个有所作为。 任何帮助表示赞赏...这让我发疯。 更新:一项更正:似乎有问题的输出实际上是jwebunit对HttpClient的使用而不是我自己的。无论哪种方式,都是不可取的。 更新:感谢到目前为止的尝试。我已经尝试了下面建议的所有内容,但仍然没有运气。我的src / test / resources文件夹中有一个commons-logging.properties文件,内容如下 org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory log4j.configuration=log4j.properties 和文件log4j.properties在同一文件夹中,内容如下 log4j.rootLogger=ERROR, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n #This is the line that should make httpclient shut up log4j.logger.org.apache.http=ERROR 但是,当我运行测试时,仍然会得到很多这样的输出: 21:57:41.413 [main] DEBUG org.apache.http.wire - << " [\r][\n]" 21:57:41.413 [main] DEBUG org.apache.http.wire …

8
通过JVM参数进行log4j配置?
为了使log4j正常运行,我必须设置/传递哪些变量作为JVM的参数?正确地说,我的意思是不要抱怨并打印到控制台。我可以看一个典型的例子吗? 注意:我需要避免在应用程序中创建log4j.properties文件。
133 java  logging  log4j 


20
我们如何在Java中将行号打印到日志中
如何将行号打印到日志中。说在将某些信息输出到日志时,我还想在源代码中输出该行的行号。正如我们在堆栈跟踪中所看到的,它显示发生异常的行号。堆栈跟踪可用于异常对象。 其他选择可能类似于在打印到日志时手动包括行号。还有其他办法吗?
132 java  logging 


6
是否有“ vim运行时日志”?
有时我会在vimrc中尝试自定义/命令。一切似乎都是正确的,但那是行不通的。 很难知道vim启动时正在发生什么,也不知道哪个命令失败了,因此调试在vimrc中可能引起问题的内容真的很困难。这是一种尝试错误的方法,非常耗时,而且实际上是PITA。例如,某些文件中的snipmate插件存在问题,只是对如何发现问题一无所知。 vim启动时是否有“运行时日志”,告诉它执行了哪些命令,哪些失败了?这对我有很大帮助。
130 vim  runtime  logging 

11
将屏幕(程序)输出保存到文件
我需要将Screen的整个输出保存到一个文件中,以便以后检查所有内容。 原因是我要通过串行端口转储闪存,并使用Screen与之交互。我想将其保存到文件中以检查内存结构。 我试过了: $: screen /dev/ttyUSB0 115200 >> foo.txt $: screen /dev/ttyUSB0 115200 | tee foo.txt 而且我也尝试过从屏幕上使用bufferfile,但我不知道如何使用它。 有没有简单的方法?


15
如何打印调试日志?
我想调试一些PHP代码,但我想将日志打印到屏幕或文件对我来说很好。 我应该如何在PHP代码中打印日志? 通常print/ printf似乎去HTML输出而不是控制台。 我有Apache服务器执行PHP代码。
129 php  debugging  logging 

9
如何使用Retrofit-Android记录请求和响应正文?
我在Retrofit API中找不到用于记录完整的请求/响应正文的相关方法。我在Profiler中期待一些帮助(但它仅提供有关响应的元数据)。我尝试在Builder中设置日志级别,但这也无济于事: RestAdapter adapter = (new RestAdapter.Builder()). setEndpoint(baseUrl). setRequestInterceptor(interceptor). setProfiler(profiler). setClient(client). setExecutors(MyApplication.getWebServiceThreadPool()). setLogLevel(LogLevel.FULL). setLog(new RestAdapter.Log() { @Override public void log(String msg) { Log.i(TAG, msg); } }). build(); 编辑:此代码现在正在工作。我不知道为什么它不起作用。可能是因为我使用的是旧版本的改造。

4
在SLF4J / Logback中使用标记的最佳实践
我们在项目中使用SLF4J + Logback组合已经有一段时间了,对此感到很满意,但是我们的日志记录策略非常简单,使用基于类的简单记录器,没有像MDC或Markers这样的奇特的东西。 我想知道的是,社区中是否有人真的使用了这些功能,以及它们如何用于改善日志记录/过滤功能。 我对在哪里,为什么以及如何使用[1]标记进行记录特别感兴趣。它们使我感到惊奇,因为它是将语义上下文添加到日志记录中的一种非常简洁的功能-例如,当一类可能正在处理多个问题时,可以使用特定于任务/关注点的标记来区分日志语句。 在日志记录中创建和使用标记的最佳实践,惯例或策略可能是什么。 更新:我想,我所真正追求的是没有那么多,为什么要使用标记,而是如何的一部分-有命名标志的一些好的做法(例如,使用用空格或破折号/下划线/标点符号分隔的关键字样式名称纯文本),如果有某种“标准名称”池,则根据业务功能命名内容。我可能可以为自己解决一些问题,但是如果我想系统地使用这些功能并将其介绍给一组开发人员,则有一套可形式化的指导原则是有道理的... [1] -通过询问如何使用标记,我并不是在问如何使用API​​(这确实很简单)-我指的是更一般的水平,即如何设置一致地使用标记进行日志记录
127 java  logging  slf4j  logback  markers 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.