使用java.util.logging.Logger
,如何记录参数并抛出异常?
final Object[] params;
final Throwable thrown;
我找不到任何方法log(Level, String, Object[], Throwable)
。
我应该使用log(Level, String.format(...), Throwable)还是log(Level, Throwable, () -> String.format(...))
?
有没有办法把两者String并Object[]
以java.util.logging.Logger
中。
我会转换String[]
为String
并使用:
public void log(Level level,
String msg,
Throwable thrown)
您还可以创建log指向的自己的方法,java.util.logging.Logger.log
例如:
public void log(Level level,
String msg,
Object[] obj,
Throwable thrown)
{
//StringBuilder buff = ...
// some string manipulation with 'msg' and 'obj'
// ...
log(level, buff.toString(), thrown);
}
问题内容: 下面的编码方法是好的做法吗? 而且,我应该 仅使用记录器? 只抛出异常? 两者都做吗? 我知道可以在调用堆栈的另一部分捕获异常,但是也许其他日志记录有一些隐藏的好处,并且也很有用。 问题答案: 在某些情况下,我会同时使用日志记录和引发异常。特别是,它在API中很有用。通过抛出异常,我们允许调用者对其进行处理,并通过记录日志,我们可以自行确定其根本原因。 而且,如果调用者在同一系统中,则
我可以创建一个命名的子记录器,以便该记录器输出的所有日志都用它的名称标记。我可以只在函数/类/任何东西中使用记录器。 但是,如果该代码调用了另一个模块中的函数,该模块仅使用日志模块函数(根记录器的代理)进行日志记录,我如何确保这些日志消息通过相同的记录器(或者至少以相同的方式记录)? 例如: main.py 其他.py 产出: 我希望能够使两个日志行都标记为名称'stuff',我希望能够做到这一点
这使得日志难以读取、冗长和不必要的复杂(在大多数情况下,其他参数都不存在)。 我想处理所有的案件,只保留必要的数据。例子: 我可以手工编码: 它应该支持可选参数,用给定的字符串替换boolean/condition,支持用和分隔空格、逗号和单词。 也许有这样的图书馆吗?或者也许至少有一种更简单的编码方式? 如果不是这样,我就没有其他办法为日志记录中的消息编写自己的库了。此外,这种库将提供所有日志的
问题内容: 如何使用Python的文档字符串使用参数记录方法? 编辑: PEP 257给出了这个例子: 这是大多数Python开发人员使用的约定吗? 我期待一些更正式的东西,例如 环境 :Python 2.7.1 问题答案: 根据我的经验,numpy的文档字符串公约(PEP257超集)是最广泛的传播 遵循 惯例,它们也通过工具,如支持的狮身人面像。 一个例子:
为什么没有:
我下载了kafka-clients-0.9.0.0。jar与maven一起使用,我希望我会看到类似于Kafka日志链接中的日志记录 然而,我不知道为什么我没有得到任何日志记录,即使我设置了引导。purpuse上的服务器错误,但它只是在没有发出任何警告的情况下被卡住了。我添加了几行代码以使用log4j打印到一个文件中,这似乎是可行的,但不知道为什么Kafka不能将事件记录到log4j中。 请注意,s