求java核心技术I(第八版)中文版 pdf 电子书
RT 木有的话第七版也可以 清晰点最好哈 谢谢 估计都要接近100M左右 有的麻烦发送邮箱 huntingz@qq.com any answer will be appreciated
更新时间:2023-08-04 17:08
最满意答案
调试的话,最好的工具是debug. 记日志的话log4j要方便的多,可以对日志分级别,还可以控制输出的类型和格式。 最简单的说吧,如果用Sys.out...,控制台打出一堆掺杂的信息,你想找都不好找。但log4j能自动把它存成文件。
其他回答
log4j是什么? log4j 是apache的一个开放源代码项目,通过使用log4j,我们可以控制日志信息输送的目的地是控制台、文件、gui组件、甚至是套接口服务器、nt的事件记录器、unix syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 此外,通过log4j其他语言接口,您可以在 c、c++、.net、pl/sql程序中使用log4j,其语法和用法与在java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将log4j集成到j2ee、jini甚至是snmp应用中。 log4j的优势 a、日志输出的目的地,输出到控制台的速度比输出到文件系统的速度要慢。 b、日志输出格式不一样对性能也会有影响,如简单输出布局(simplelayout)比格式化输出布局(patternlayout)输出速度要快。可以根据需要尽量采用简单输出布局格式输出日志信息。 c、日志级别越低输出的日志内容就越多,对系统系能影响很大。 d、日志输出方式的不同,对系统系能也是有一定影响的,采用异步输出方式比同步输出方式性能要高。 e、每次接收到日志输出事件就打印一条日志内容比当日志内容达到一定大小时打印系能要低。
相关问答
更多-
调试的话,最好的工具是debug. 记日志的话log4j要方便的多,可以对日志分级别,还可以控制输出的类型和格式。 最简单的说吧,如果用Sys.out...,控制台打出一堆掺杂的信息,你想找都不好找。但log4j能自动把它存成文件。
-
你发布的第一个答案(系统是一个内置的类...)是非常有用的。 您可以添加System类包含很大部分,这些部分是本机的,并且由JVM在启动期间设置,例如将System.out printstream连接到与“标准输出”(控制台)关联的本机输出流。 The first answer you posted (System is a built-in class...) is pretty spot on. You can add that the System class contains large porti ...
-
System.out.println是一个IO操作,因此是耗时的。 在您的代码中使用它的问题是,您的程序将等到println完成。 这可能不是小网站的问题,但一旦你负载或很多次迭代,你会感到痛苦。 更好的方法是使用日志框架。 他们使用消息队列,只有在没有其他输出正在执行时才会写入。 另一个好处是您可以为不同的目的配置单独的日志文件。 你的Ops团队会爱你的东西。 在这里阅读更多: http://logging.apache.org/log4j/1.2/manual.html Logger vs. Syste ...
-
我能想到的唯一方法是编写自己的PrintStream实现,该实现在调用println方法时创建堆栈跟踪,以便计算出类名。 这将是非常可怕的,但它应该工作...概念样本代码的证明: import java.io.*; class TracingPrintStream extends PrintStream { public TracingPrintStream(PrintStream original) { super(original); } // You'd want to ove ...
-
希望使“System.out.println()”将消息打印到log4j(Want to make “System.out.println()” to print message to log4j)[2022-04-08]
我想这是可能的,但这绝对是一个坏主意。 您应该咬紧牙关并更换所有的System.out.printXXx()和System.err.printXXx()调用。 (你不需要做一个大的改变,而且你不必使用自动搜索/替换来做到这一点......如果这些东西让你感觉不舒服。) 您可以使用System.setOut和System.setErr将它们指向log4j日志文件来更改这些流的位置。 然而: 您可能会遇到交错输出和/或日志文件截断的问题,具体取决于如何实现log4j appender 你不会得到log4j时间戳 ... -
使用命令行选项-j jmeterlogfile Use the the command-line option -j jmeterlogfile
-
您可以实现自己的PrintStream并使用System.setOut来替换默认的stdout。 然后在类内部放置一个调试标记(如果打印出空字符串),或者通过调用堆栈(抛出并捕获异常并获取堆栈信息)打印方法名称。 You could implement your own PrintStream and use System.setOut to replace the default stdout. Then either put a debugging marker inside the class (if ...
-
下面的java代码在scala中的等效log4j语句是什么?(What is the equivalent log4j statement in scala for the below java code)[2021-10-28]
它是 val logger = Logger getLogger classOf[SampleMain] It is val logger = Logger getLogger classOf[SampleMain] -
包括temp1.replace(System.getProperty("line.separator"),修复了我的问题。这是完整的代码: for (String e : images){ String temp = e.replaceFirst(strSeparator, ""); String temp1 = temp.replace(strSeparator, ", "); String temp2 = temp1.replace(System.getP ...
-
它就像你创建了一个从未使用过的变量然后为什么创建它,如果你使用它会更好 logger.error("Exception: " + ex.getMessage() + ""); 代替 System.out.println("Exception: " + ex.getMessage() + ""); Its like u created a variable which is never used then why create it, it would be better if you use logge ...