标签: logging

是否应在UPPER-CASE中声明"静态最终记录器"?

在Java中,静态最终变量是常量,惯例是它们应该是大写的.但是,我已经看到大多数人声称记录器是小写的,这在PMD中是违规的.

例如:

private static final Logger logger = Logger.getLogger(MyClass.class);
Run Code Online (Sandbox Code Playgroud)

只需搜索谷歌SO搜索"静态最终记录器",你就会看到这个.

我们应该使用LOGGER吗?

java logging static final naming-conventions

232
推荐指数
7
解决办法
6万
查看次数

将stdout的COPY重定向到bash脚本本身的日志文件

我知道如何将stdout重定向到文件:

exec > foo.log
echo test
Run Code Online (Sandbox Code Playgroud)

这会将'test'放入foo.log文件中.

现在我想将输出重定向到日志文件并将其保存在stdout上

即它可以从脚本外部轻松完成:

script | tee foo.log
Run Code Online (Sandbox Code Playgroud)

但我想在脚本本身内声明它

我试过了

exec | tee foo.log
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

bash shell logging redirect

224
推荐指数
6
解决办法
14万
查看次数

在多个模块中使用Python日志记录

我有一个小python项目,具有以下结构 -

Project 
 -- pkg01
   -- test01.py
 -- pkg02
   -- test02.py
 -- logging.conf
Run Code Online (Sandbox Code Playgroud)

我计划使用默认日志记录模块将消息打印到stdout和日志文件.要使用日志记录模块,需要进行一些初始化 -

import logging.config

logging.config.fileConfig('logging.conf')
logger = logging.getLogger('pyApp')

logger.info('testing')
Run Code Online (Sandbox Code Playgroud)

目前,我在开始记录消息之前在每个模块中执行此初始化.是否可以在一个地方只执行一次初始化,以便通过整个项目记录重复使用相同的设置?

python logging config

217
推荐指数
9
解决办法
15万
查看次数

在Python中使用多处理时应该如何记录?

现在我在框架中有一个中央模块,它使用Python 2.6 multiprocessing模块生成多个进程.因为它使用multiprocessing,所以有模块级多处理感知日志,LOG = multiprocessing.get_logger().根据文档,这个记录器具有进程共享锁,因此您不会sys.stderr通过让多个进程同时写入来解决问题(或任何文件句柄).

我现在遇到的问题是框架中的其他模块不支持多处理.我看到它的方式,我需要使这个中央模块的所有依赖使用多处理感知日志记录.这框架很烦人,更不用说框架的所有客户了.我有没有想到的替代方案?

python logging multiprocessing

213
推荐指数
11
解决办法
11万
查看次数

IE9是否支持console.log,它是真正的功能吗?

window.console.logInternet Explorer 9中定义了哪些情况?

即使window.console.log被定义,window.console.log.apply并且window.console.log.call是不确定的.为什么是这样?

[IE8的相关问题:IE8 中的console.log发生了什么变化?]

javascript logging internet-explorer-9

206
推荐指数
5
解决办法
11万
查看次数

如何记录cron作业?

我想知道如何确切地看到cron作业在每次执行时都在做什么.日志文件位于何处?或者我可以将输出发送到我的电子邮件吗?我已经设置了电子邮件地址,以便在cron作业运行时发送日志,但我还没有收到任何信息.

cron logging

202
推荐指数
7
解决办法
24万
查看次数

Spring RestTemplate - 如何启用请求/响应的完整调试/记录?

我一直在使用Spring RestTemplate一段时间,当我试图调试它的请求和响应时,我一直碰壁.我基本上希望看到当我使用curl并打开"详细"选项时看到的相同内容.例如 :

curl -v http://twitter.com/statuses/public_timeline.rss
Run Code Online (Sandbox Code Playgroud)

将显示发送的数据和接收的数据(包括标题,cookie等).

我检查了一些相关的帖子,如: 我如何在Spring RestTemplate中记录响应? 但我没有设法解决这个问题.

实现此目的的一种方法是实际更改RestTemplate源代码并在那里添加一些额外的日志记录语句,但我会发现这种方法确实是最后的手段.应该有一些方法告诉Spring Web Client/RestTemplate以更友好的方式记录所有内容.

我的目标是能够使用以下代码执行此操作:

restTemplate.put("http://someurl", objectToPut, urlPathValues);
Run Code Online (Sandbox Code Playgroud)

然后在日志文件或控制台中获取相同类型的调试信息(我使用curl).我相信这对使用Spring RestTemplate且有问题的任何人都非常有用.使用curl调试RestTemplate问题不起作用(在某些情况下).

java debugging logging resttemplate

198
推荐指数
17
解决办法
20万
查看次数

在log4j中,在记录改进性能之前检查isDebugEnabled吗?

我在我的应用程序中使用Log4J进行日志记录.以前我使用调试调用如:

选项1:

logger.debug("some debug text");
Run Code Online (Sandbox Code Playgroud)

但有些链接表明最好先检查一下isDebugEnabled(),例如:

选项2:

boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
    logger.debug("some debug text");
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是" 选项2能否以任何方式提高性能? ".

因为在任何情况下Log4J框架都对debugEnabled进行相同的检查.对于选项2,如果我们在单个方法或类中使用多个调试语句可能是有益的,其中框架不需要isDebugEnabled()多次调用方法(在每次调用时); 在这种情况下,它只调用isDebugEnabled()一次方法,如果Log4J配置为调试级别,那么实际上它调用isDebugEnabled()方法两次:

  1. 如果为debugEnabled变量赋值,和
  2. 实际上是由logger.debug()方法调用的.

我不认为如果我们logger.debug()在方法或类中编写多个语句并debug()根据选项1 调用方法,那么与选项2相比,它是Log4J框架的开销.因为它isDebugEnabled()是一个非常小的方法(就代码而言),它可能是内联的好人选.

java logging log4j

192
推荐指数
7
解决办法
10万
查看次数

截断SQL Server日志文件的命令是什么?

我需要在发送给同事之前清空LDF文件.如何强制SQL Server截断日志?

sql-server logging truncate

189
推荐指数
4
解决办法
47万
查看次数

以编程方式配置Log4j记录器

我是log4j第一次尝试使用SLF4J(带绑定).

我想配置3个不同的名为Logger,它们可以由LoggerFactory返回,它将记录不同的级别并将消息推送到不同的appender:

  • 记录器1"FileLogger"记录DEBUG并附加到 DailyRollingFileAppender
  • 记录器2"TracingLogger"记录TRACE +并附加到a JmsAppender
  • 记录器3"ErrorLogger"记录ERROR +并附加到其他变量 JmsAppender

此外,我希望它们以编程方式配置(在Java中,而不是XML或log4j.properties文件).

我想,通常情况下,我会Logger在某些引导代码中将它们定义为某个init()方法,就像方法一样.但是,因为我想使用slf4j-log4j,我很困惑我可以在哪里定义记录器并使它们可用于类路径.

我不认为这违反了SLF4J的基本目的(作为一个外观),因为我使用SLF4J API的代码永远不会知道这些记录器存在.我的代码只是对SLF4J API进行正常调用,然后将它们转发到它在类路径上找到的log4j Loggers.

但是如何在类路径中配置那些log4j记录器...在Java中?!

java logging log4j slf4j

183
推荐指数
3
解决办法
19万
查看次数