我们在自制包装器后面使用log4j.我们现在计划使用它的更多功能.
我们应该更新到logback吗?
(我的意思是框架不是像SLF4J那样的外观)
在rails中我想在一个不同的日志文件中记录一些信息,而不是标准的development.log或production.log.我想从模型类中进行日志记录.
查询历史记录是否存储在某些日志文件中?如果是的话,你能告诉我如何找到他们的位置吗?如果没有,你能就如何看待它给我任何建议吗?
我想将一些调试输出写入日志以使用logcat进行查看.
如果我向System.out写了一些东西,这已经在logcat中显示了.
写入日志并向我的输出添加级别和标记的干净方法是什么?
假如您执行e.printStackTrace(),则会捕获异常并在标准输出(例如,控制台)上获取以下内容:
java.io.FileNotFoundException: so.txt
at java.io.FileInputStream.<init>(FileInputStream.java)
at ExTest.readMyFile(ExTest.java:19)
at ExTest.main(ExTest.java:7)
Run Code Online (Sandbox Code Playgroud)
现在我想把它发送到一个记录器,比如log4j,以获得以下内容:
31947 [AWT-EventQueue-0] ERROR Java.io.FileNotFoundException: so.txt
32204 [AWT-EventQueue-0] ERROR at java.io.FileInputStream.<init>(FileInputStream.java)
32235 [AWT-EventQueue-0] ERROR at ExTest.readMyFile(ExTest.java:19)
32370 [AWT-EventQueue-0] ERROR at ExTest.main(ExTest.java:7)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
try {
...
} catch (Exception e) {
final String s;
... // <-- What goes here?
log.error( s );
}
Run Code Online (Sandbox Code Playgroud) 如何配置Logback以将记录器的不同级别记录到不同的目标?
例如,给定以下Logback配置,Logback会将INFO消息记录到STDOUT和ERROR消息STDERR吗?
(请注意,此示例是第3章:Logback配置中logback-examples/src/main/java/chapters/configuration/sample4.xml显示的示例的变体).
<configuration>
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="STDERR"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
<target>System.err</target>
</appender>
<!-- What is the effective level of "chapters.configuration"? -->
<logger name="chapters.configuration" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<logger name="chapters.configuration" level="ERROR" additivity="false">
<appender-ref ref="STDERR" />
</logger>
<!-- turn OFF all logging (children can override) --> …Run Code Online (Sandbox Code Playgroud) 我有一个不在市场上的应用程序(使用调试证书签名),但只要我的应用程序崩溃,我想获得崩溃日志数据.我在哪里可以找到我的应用程序崩溃原因的日志?
我正在考虑为我的Java应用程序创建一个调试工具.
我想知道是否有可能获得堆栈跟踪,就像Exception.printStackTrace()没有实际抛出异常一样?
我的目标是,在任何给定的方法中,转储堆栈以查看方法调用者是谁.
在没有附加组件的Safari中,console.log将在最后执行状态下显示对象,而不是在console.log调用时的状态.
我必须克隆对象只是为了输出它console.log来获取该行的对象状态.
例:
var test = {a: true}
console.log(test); // {a: false}
test.a = false;
console.log(test); // {a: false}
Run Code Online (Sandbox Code Playgroud) 每次我需要设计一个新的数据库时,我都会花一些时间考虑如何设置数据库模式来保存更改的审核日志.
这里已经提出了一些问题,但我不同意所有场景都有一个最好的方法:
我还偶然发现了这篇关于维护数据库更改日志的有趣文章,该文章试图列出每种方法的优缺点.它写得很好并且有很多有趣的信息,但它使我的决定更加困难.
我的问题是:是否有一个我可以使用的参考,可能是一本书或类似决策树的东西,我可以参考决定我应该根据一些输入变量去哪种方式,例如:
我知道的方法是:
1.为创建和修改的日期和用户添加列
表格示例:
主要缺点:我们失去了修改的历史.提交后无法回滚.
2.仅插入表格
表格示例:
主要缺点:如何保持外键最新?需要巨大的空间
3.为每个表创建单独的历史记录表
历史表示例:
主要缺点:需要复制所有审计表.如果架构发生更改,则还需要迁移所有日志.
4.为所有表创建合并历史记录表
历史表示例:
主要缺点:如果需要,我能否轻松重建记录(回滚)?new_value列需要是一个巨大的字符串,因此它可以支持所有不同的列类型.