[英]logging frameworks and logback.xml
在使用Java和com.alvazan.orm.api库创建示例时,禁止使用“ System.out.println”。
学习的第一个也是最简单的Java练习之一是“ Hello World”,也使用“ System.out.println”(...也称为日志记录,或者在控制台中找到了返回的请求数据?)使用Eclipse时,日志记录通过修改logback.xml文件(ctrl-shift-R并键入logback.xml)将其关闭
从那里;
<logger name="com.alvazan.orm" level="WARN"/>
是要添加到logback.xml文件的行,以便仅显示启动日志。
此外,还有两个日志,例如...。
2012-09-14 22:05:08,067 com.alvazan.test.FactorySingleton createFactory
INFO: CREATING FACTORY FOR TESTS
2012-09-14 22:05:08,809 com.impetus.annovention.ClasspathDiscoverer processFile
INFO: adding folder to scan=file:/C:/AAROOT/workareas/area1/playorm/eclipsegen/
被使用。
谢谢你的时间,
瑞安
为了回应布雷特以及其他信息/问题,
您的根记录器如何配置? 您仅为com.alvazan.orm设置WARN,因此,如果您的根记录器是INFO,则将记录com.alvazan.test INFO。
嘿布雷特,感谢您的回复...
对于根记录器配置,我相信该值设置为“ INFO”。
话虽如此,我想将“ INFO”设置为“ WARN”,以防止使用“ System.out.println”
同样在上一个问题中,我提到:
2012-09-14 22:05:08,067 com.alvazan.test.FactorySingleton createFactory
INFO:创建测试工厂
2012-09-14 22:05:08,809 com.impetus.annovention.ClasspathDiscoverer processFile
INFO:将文件夹添加到scan = file:/ C:/ AAROOT / workareas / area1 / playorm / eclipsegen /
com.alvazan.test.FactorySingleton和com.impetus.annovention.ClasspathDiscoverer(同一库中的不同程序包)
在同一个库中找到不同的位置...
我是否需要对其他文件或* package进行登录过程,或者在同一库中执行一次,是否就足够了? 还是我要调整其他值?
您的根记录器如何配置? 您仅为com.alvazan.orm设置WARN,因此,如果您的根记录器是INFO,则将记录com.alvazan.test INFO。
“在使用Java和com.alvazan.orm.api库创建示例时,禁止使用“ System.out.println”。”
通常,没有人在System.out.println中使用。 Hibernate没有,JBoss没有,tomcat没有。 它们都使用日志记录框架,因此您可以配置生产中的每个日志,并且每个使用tomcat或jboss或hibernate的公司都可以对其进行不同的配置。 如果这些程序使用System.out.println,则客户将无法控制,并且您的服务器将始终运行缓慢,因为您从不希望“所有”日志记录,并且无法关闭System.out.println! 他们总是在。 log.info可以关闭和打开。
有关配置回发的最完整答案,请参见其文档。
http://logback.qos.ch/manual/configuration.html
只是澄清所有信息都输入到logback.xml文件中?
我不确定这个问题是什么意思。 logback.xml是名为logback的日志记录库的配置,您可以在上面的链接中找到它。
Is there a diffrent file to use(other than logback.xml)?
logback还有其他选项,例如用于配置它的groovy文件,但是playOrm仅使用logback.xml,尽管任何客户端都可以决定他们使用的配置文件,因为playOrm会丢弃交付到其他项目时签入的logback.xml文件。
Or is the end-user to use, for instance, "com.alvazan.test.FactorySingleton createFactory";
and "com.impetus.annovention.ClasspathDiscoverer processFile"?
这个问题让我很困惑。 最终用户不应使用FactorySingleton(既不直接也不间接使用,并且该类甚至不在jar中,因为它在测试包中)。 最终用户将仅间接使用ClasspathDiscoverer ...实际上,最终用户甚至都不知道这些类。
Finalizing this question, is the file path for the preceeding necessary?
您是否要询问logback.xml中的文件路径是否必要? 如果您想进一步了解回发的工作原理,则需要阅读大量文档。 基本上,您可以执行com.alvazan level = WARN之类的操作来打开com.alvazan中的任何类。 * *警告级别(这是递归的,适用于子代,孙代等)。 始终在logback.xml中也定义ROOT记录器,并且它是所有包中所有类的级别,除非被覆盖。
是的,playorm中的根记录器设置为警告。
在您显示的图片的底部(您的图片被切除,因此不在该图片中),有一个“源”选项卡,您可能要单击该选项卡才能更好地查看xml,它将更好地与logback的文档相匹配好。 这是我打赌您正在查看的文件的链接。
root logger明确设置为info,并且可以根据需要设置为警告。
所以你想要什么。 您是否希望这两个日志语句消失并关闭? 是否要关闭WARN以外的所有日志语句?
如果要在所有软件库中关闭所有功能,只需将根记录器更改为“ WARN”。 如果您只想关闭FactorySingleton,则可以添加此行
<logger name="com.alvazan.test.FactorySingleton" level=""WARN"/>
如果您要关闭所有com.alvazan日志记录而不是仅关闭com.alvazan.orm中的所有内容,同时也要关闭com.alvazan.test,但是您希望所有其他库仍处于打开状态(但始终希望WARN处于打开状态)这通常是您想要的),那么您可以更改此设置
<logger name="com.alvazan.orm" level=""WARN"/>
改为以下
<logger name="com.alvazan" level=""WARN"/>
最好的理解logback的方法是阅读logback文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.