日志框架和logback.xml

时间:2012-09-15 07:11:38

标签: java eclipse logback

使用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/
使用。

  • 只是澄清所有信息都输入到logback.xml文件中?
  • 是否有一个不同的文件要使用(除了logback.xml)?
  • 或者是最终用户,例如“com.alvazan.test.FactorySingleton createFactory”;和“com.impetus.annovention.ClasspathDiscoverer processFile”?
  • 完成此问题,是前面必要的文件路径吗?

感谢您的时间,
瑞恩


回应Brett以及其他信息/问题,

您的根记录器是如何配置的?您只为com.alvazan.orm设置WARN,因此如果您的根记录器是INFO,那么将记录com.alvazan.test INFO。

嘿布雷特,谢谢你的回复......

对于根记录器配置,我认为该值设置为“INFO” logback.xml
话虽这么说,我想把“INFO”设置为“WARN”,以防止使用 “System.out.println”
同样在上一个问题中,我提到过:

  

2012-09-14 22:05:08,067 com.alvazan.test.FactorySingleton createFactory
  信息:为测试创建工厂
  2012-09-14 22:05:08,809 com.impetus.annovention.ClasspathDiscoverer processFile
  信息:添加文件夹到scan = file:/ C:/ AAROOT / workareas / area1 / playorm / eclipsegen /

com.alvazan.test.FactorySingleton 和 com.impetus.annovention.ClasspathDiscoverer(同一个库中的不同包)

在同一个库中找到不同的位置...
Library

我是否需要对其他文件或*包执行注销过程,或者在同一个库中执行一次,是否应该满足所有要求?或者我是否可以调整其他值?

2 个答案:

答案 0 :(得分:0)

您的根记录器是如何配置的?您只为com.alvazan.orm设置WARN,因此如果您的根记录器是INFO,那么将记录com.alvazan.test INFO。

答案 1 :(得分:0)

  1. 你的第一个陈述....
  2.   

    “在使用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中的文件路径是否必要?如果您想了解有关logback如何工作的更多信息,您需要阅读很多文档。基本上,您可以执行com.alvazan level = WARN之类的操作来转换com.alvazan中的任何类。 * *以警告级别(这是递归的并适用于儿童,孙子等等) 。 ROOT记录器总是在logback.xml中定义,并且是所有包中所有类的级别,除非被覆盖。

    是的,playorm中的根记录器设置为警告。

    在您显示的图片的底部(您的图片被截断,而不是在图片中),有一个“源”标签,您可能想要点击它以更好地查看xml,它将与logback匹配文档也更好。这是我打赌你正在看的文件的链接..

    https://github.com/deanhiller/playorm/blob/486079cfefbd2b4b79e99652b24c146572663dda/input/javasrc/logback.xml

    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文档。