Tag: log

如何在log4j RollingFileAppender中从Java中启动的Shell脚本输出日志?

我在Tomcat上运行Java Web应用程序,在运行时执行Shell脚本,其中执行许多“echo”命令。 我的问题是我希望我的所有日​​志都出现在log4j RollingFileAppender中,即: Java Log4j日志(很容易做到) Shell echo命令日志(这对我来说是棘手的部分) Shell脚本通过java.lang.Process类运行。 到目前为止,由于log4j提供的StreamUtils.copy()方法,我已设法将进程的inputStream和errorStream输出到System.out。 但是这样可以获得一些ConsoleAppender输出,但不是RollingFileAppender输出。 有没有方便的方法将Process流重定向到RollingFileAppender? 在Log4j配置中还是从Java代码? 这是我的LOG4J appender conf: 这是我的启动脚本代码: ProcessBuilder pb = new ProcessBuilder(“sh”, “script.sh”); Process p = pb.start(); StreamUtils.copy(p.getInputStream(), System.out); StreamUtils.copy(p.getErrorStream(), System.out); int result = p.waitFor(); LOG.info(“Script ended with result ” + result); return (result == 0);

Android上的Log4j2

我正在尝试在Android Project上使用log4j2(我正在使用Android Studio)。 为了简化这个问题,我将解释我在一个简单的虚拟项目中所做的事情(我在实际项目中得到的错误比在这个虚拟项目中得到的错误)。 我创建了一个带有主要活动的简单虚拟项目。 我添加了log4j2库… 这是gradle: apply plugin: ‘com.android.application’ android { packagingOptions { exclude ‘META-INF/LICENSE’ exclude ‘META-INF/NOTICE’ } compileSdkVersion 21 buildToolsVersion “21.1.2” defaultConfig { applicationId “com.example.test20150130” minSdkVersion 19 targetSdkVersion 21 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) […]