weblogic日志的问题

想实现下面的功能,将weblogic的stdout输出到某文件,当到达一定大小的时候(比如5M)自动新建一个日志文件.
前面一个要求比较简单,后面的不知道怎么搞好了.
不知道能否用weblogic的console实现?

以后一定好好用log4j!

[b]问题补充:[/b]
想实现下面的功能,将weblogic的stdout输出到某文件,当到达一定大小的时候(比如5M)自动新建一个日志文件.
前面一个要求比较简单,后面的不知道怎么搞好了.
不知道能否用weblogic的console实现?

以后一定好好用log4j!

to hanhg (中级程序员) :
提出这个问题的原因是有些调试信息,被人直接System.out,所以是输出到控制台的,我想取到这个内容并保存下来.

[b]问题补充:[/b]
想实现下面的功能,将weblogic的stdout输出到某文件,当到达一定大小的时候(比如5M)自动新建一个日志文件.
前面一个要求比较简单,后面的不知道怎么搞好了.
不知道能否用weblogic的console实现?

以后一定好好用log4j!

[b]问题补充:[/b]
想实现下面的功能,将weblogic的stdout输出到某文件,当到达一定大小的时候(比如5M)自动新建一个日志文件.
前面一个要求比较简单,后面的不知道怎么搞好了.
不知道能否用weblogic的console实现?

以后一定好好用log4j!

to hanhg (中级程序员) :
提出这个问题的原因是有些调试信息,被人直接System.out,所以是输出到控制台的,我想取到这个内容并保存下来.

to wangxuliangboy (中级程序员) :
那个地方的日志跟控制台输出的不一样把,我要的是stdout,谢谢.
[b]问题补充:[/b]
想实现下面的功能,将weblogic的stdout输出到某文件,当到达一定大小的时候(比如5M)自动新建一个日志文件.
前面一个要求比较简单,后面的不知道怎么搞好了.
不知道能否用weblogic的console实现?

以后一定好好用log4j!

[b]问题补充:[/b]
想实现下面的功能,将weblogic的stdout输出到某文件,当到达一定大小的时候(比如5M)自动新建一个日志文件.
前面一个要求比较简单,后面的不知道怎么搞好了.
不知道能否用weblogic的console实现?

以后一定好好用log4j!

to hanhg (中级程序员) :
提出这个问题的原因是有些调试信息,被人直接System.out,所以是输出到控制台的,我想取到这个内容并保存下来.

[b]问题补充:[/b]
想实现下面的功能,将weblogic的stdout输出到某文件,当到达一定大小的时候(比如5M)自动新建一个日志文件.
前面一个要求比较简单,后面的不知道怎么搞好了.
不知道能否用weblogic的console实现?

以后一定好好用log4j!

[b]问题补充:[/b]
想实现下面的功能,将weblogic的stdout输出到某文件,当到达一定大小的时候(比如5M)自动新建一个日志文件.
前面一个要求比较简单,后面的不知道怎么搞好了.
不知道能否用weblogic的console实现?

以后一定好好用log4j!

to hanhg (中级程序员) :
提出这个问题的原因是有些调试信息,被人直接System.out,所以是输出到控制台的,我想取到这个内容并保存下来.

to wangxuliangboy (中级程序员) :
那个地方的日志跟控制台输出的不一样把,我要的是stdout,谢谢.

to hanhg (中级程序员)
谢谢你的回答,现在再改代码已经来不及了,所以我才会有这个问题.使用log4j确实可以很方便地解决问题,只是现在没法再改代码了
[b]问题补充:[/b]
to wangxuliangboy (中级程序员):
[code="java"]你用的系统是UNIX的吗....
你可以用nohup weblogic.sh >>log.log &
wangxuliangboy (中级程序员) [/code]
这个法子,貌似只能产生一个日志文件吧?

log4j提供了很好的解决方案,只是现在没法再改代码了.对启动文件和服务器配置的稍微改动还可以做到.这也是我觉得棘手的地方

其实我觉得解决方法应该从weblogic自身提供的功能上找,你提到的
[code="java"]在WEBLOGIC CONSOLE的左边选择一个SERVER,并在右边的窗口中选择LOGGING [/code]
这个方法,如果可以设置输出的日志为stdout就可以满足我的要求了,遗憾的是我没找到这个类似的配置
[b]问题补充:[/b]
to wangxuliangboy (中级程序员) :
[code="java"]将$WL_HOME/server/lib/wllog4j.jar 和 log4j.jar 文件添加到服务器 CLASSPATH 来配置 Log4j 日志记录...[/code]
不知道你用的是什么版本的,我的这个目录没有这个wllog4j.jar 这个文件..汗,能否提供个啊

8个回答

WEBLOGIC10 有这个文件

这个估计不太好弄,嘿嘿

hehe,你是不是已经取到了日志。
在log4j里面这样的配置可以实现:

Appender PRODUCT writes to the file

log4j.appender.PRODUCT=org.apache.log4j.RollingFileAppender
log4j.appender.PRODUCT.MaxBackupIndex=5
log4j.appender.PRODUCT.MaxFileSize=5MB
log4j.appender.PRODUCT.File=logs/nms.log

自己实现也是很简单的,看一下下面的代码:
[code="java"]
private File files = null;

private FileWriter writer = null;

private BufferedWriter bw = null;

private String fileName = null;

[/code]
[code="java"] fileName = "tag-Log-" + String.valueOf(sdf.format(System.currentTimeMillis())) + ".txt";
files = new File(LogContants.logFilePath + File.separator + fileName);
writer = new FileWriter(files);
bw = new BufferedWriter(writer, LogContants.buffer_size);[/code]

[code="java"]
if (files.length() > LogContants.file_max_size) {
log.info(name + "日志文件达到指定的大小,写入一个新的文件");
String newFileName = "tag-Log-"
+ String.valueOf(sdf.format(System.currentTimeMillis())) + ".txt";

files = new File(LogContants.logFilePath + File.separator + newFileName);
writer = new FileWriter(files);
bw = new BufferedWriter(writer, LogContants.buffer_size);
}
bw.write(strBuf.toString());
bw.flush();
[/code]

这样还是很容易的哦!
建议你再好好学习一下log4j,毕竟是一个到处都要用到的东东。

WEBLOGIC是可以的。。
在WEBLOGIC CONSOLE的左边选择一个SERVER,并在右边的窗口中选择LOGGING

在Rotation属性页中可以设置这些日志文件的回滚方式,当日志文件到一定得大小或过了设定的时间后,把日志信息保存到一个新的文件中。WebLogic提供按文件大小和时间两种方式。如下面的设置种,选择Rotation Type 为BY SIZE。也就是当日志文件的大小达到500K时,重新写一个新的文件。如果Rotation Type 为BY TIME,那么是每隔24小时重新写一个新的文件。

WEBLOGIC是可以的。。
在WEBLOGIC CONSOLE的左边选择一个SERVER,并在右边的窗口中选择LOGGING

在Rotation属性页中可以设置这些日志文件的回滚方式,当日志文件到一定得大小或过了设定的时间后,把日志信息保存到一个新的文件中。WebLogic提供按文件大小和时间两种方式。如下面的设置种,选择Rotation Type 为BY SIZE。也就是当日志文件的大小达到500K时,重新写一个新的文件。如果Rotation Type 为BY TIME,那么是每隔24小时重新写一个新的文件。

你用的系统是UNIX的吗....
你可以用nohup weblogic.sh >>log.log &

[quote]提出这个问题的原因是有些调试信息,被人直接System.out,所以是输出到控制台的,我想取到这个内容并保存下来. [/quote]
你是想把所有的日志都记录到文件里面,可是你用system.out.println();
输入到控制台,我觉得有难度。
其实问题很好解决。
你把工程中引入log4j就可以了。很容易的。我也可以给你一个小例子。
log4j中使用下面的配置:
[code="java"]log4j.rootLogger=info,CONCOLE,PRODUCT
log4j.appender.CONCOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONCOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONCOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n

log4j.appender.PRODUCT=org.apache.log4j.RollingFileAppender
log4j.appender.PRODUCT.MaxBackupIndex=5
log4j.appender.PRODUCT.MaxFileSize=5MB
log4j.appender.PRODUCT.File=logs/nms.log
log4j.appender.PRODUCT.layout=org.apache.log4j.PatternLayout
log4j.appender.PRODUCT.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n
[/code]
这样你的日志信息即可以输入到控制台也可以打印到文件中。
你只需要求把system.out.println();替换为log.info("调试信息");
这样问题就可以解决了。

在WEBLOGIC CONSOLE的左边选择一个SERVER,并在右边的窗口中选择LOGGING是没法设置输出的日志为stdout.

不过可以设置WEBLOGIC用LOG4J输出日志..你看会不会写入控制台信息 。

配置方法如下:
将$WL_HOME/server/lib/wllog4j.jar 和 log4j.jar 文件添加到服务器 CLASSPATH 来配置 Log4j 日志记录。在完成该任务时,建议将 wllog4j.jar 和 log4j.jar 文件放到 $DOMAIN /lib 目录中,这样Server启动时,会将这些JAR文件自动加载。
在setDomainEnv.cmd文件添加以下参数,将其作为Server的启动参数, “-Dweblogic.log.Log4jLoggingEnabled=true”。
登录进入Weblogic Console,从“Home > Summary of Servers > AdminServer”选择“Logging”选项,配置Server的Log机制采用Log4J(缺省配置为JDK)。
  

  图示:在WebLogic Console中配置使用Log4j来记录Server日志

  当重新Weblogic应用服务器启动后,WebLogic会采用Log4j的日志记录方式来记录服务器日志。这样ESB中使用Log动作所生成的日志,一样会采用Log4j方式记录到Server日志文件中。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问