相关疑难解决方法(0)

删除java中对System.out的访问权限

我维护一个应用程序,它充当多个单独程序的容器.这些程序有自己的专用日志记录工具,即他们记录的所有内容都对特殊的日志文件.

尽管如此,应用程序开发人员似乎总是喜欢抛出System.out.printlne.printStackTrace调用,因此在运行容器时无法维护干净的控制台.

我怎样才能防止污染这些应用程序System.outSystem.err


实施说明:

  • 应用程序使用Log4j进行日志记录;
  • 容器也使用控制台进行日志记录,但它严格保留用于生命周期事件和问题,所以我仍然需要控制台;
  • 使用自定义类加载器加载应用程序,但不应用安全检查.

更新:

简单地重定向System.out不起作用,因为它重定向所有输出,所以这样的事情失败:

    System.setOut(new PrintStream(new OutputStream() {

        @Override
        public void write(int b) {

            throw new Error("Not on my watch you don't");

        }
    }));

    Logger logger = Logger.getLogger(Runner.class);
    logger.info("My log message");
Run Code Online (Sandbox Code Playgroud)

这应该成功.

更新2:

使用类似的代码加载和配置应用程序

App app = new UrlClassLoader(...).loadClass(className)).newInstance();
app.setLogger(loggerForClass(app));
Run Code Online (Sandbox Code Playgroud)

Log4j从系统类加载器加载.

java logging log4j

5
推荐指数
5
解决办法
2420
查看次数

阅读System.out Java测试

我有一个测试控制台应用程序的任务.我可以访问一个方法,但也想检查字符串格式是否正常工作.

由于此方法不返回字符串,而是打印到控制台,有没有办法拦截列表打印行?

测试这种东西甚至有意义吗?

java

4
推荐指数
1
解决办法
5267
查看次数

System.out.println到文本文件

我正在寻找一种获取System.out.println文本并将其保存在.txt文件中的方法,例如:

    System.out.println("Java vendor: " + System.getProperty("java.vendor"));
    System.out.println("Operating System architecture: " + System.getProperty("os.arch"));
    System.out.println("Java version: " + System.getProperty("java.version"));
    System.out.println("Operating System: " + System.getProperty("os.name"));
    System.out.println("Operating System Version: " + System.getProperty("os.version"));
    System.out.println("Java Directory: " + System.getProperty("java.home"));
Run Code Online (Sandbox Code Playgroud)

我想要输出一个.txt文件,有什么想法吗?谢谢

java file output

4
推荐指数
1
解决办法
9895
查看次数

如何找到正在打印的神秘信息?

好的,所以我有一个非常大的Java项目,我已经工作多年了(游戏,如果你必须知道的话).

不幸的是,一条神秘的信息已经开始被打印出来.无论我的搜索时间长短,我都无法确定消息的位置.

我知道你可以覆盖println方法,我很好奇是否有可能在打印的消息上附加某种调试信息?就像从或许它打印的行或文件?我尝试在谷歌搜索这个,但它只是太详细的问题,我找不到答案.

更糟糕的是,这个消息非常含糊不清.它只是"-1".

至少我现在知道使用适当的记录器而不是简单的println().

java println

3
推荐指数
1
解决办法
114
查看次数

标签 统计

java ×4

file ×1

log4j ×1

logging ×1

output ×1

println ×1