小编bra*_*rry的帖子

知道任何Java垃圾收集日志分析工具吗?

我正在寻找一个工具或脚本,它将从我的Web应用程序中获取控制台日志,解析垃圾收集信息并以有意义的方式显示它.

我正在使用以下标志启动Sun Java 1.4.2 JVM:

-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
Run Code Online (Sandbox Code Playgroud)

日志输出如下所示:

54.736: [Full GC 54.737: [Tenured: 172798K->18092K(174784K), 2.3792658 secs] 257598K->18092K(259584K), [Perm : 20476K->20476K(20480K)], 2.4715398 secs]
Run Code Online (Sandbox Code Playgroud)

如果我有一个能够直观地绘制垃圾收集趋势图的工具,那么理解几百种这样的日志条目就会容易得多.

java performance logging garbage-collection

56
推荐指数
7
解决办法
8万
查看次数

如何通过JavaScript确定页面是否安全?

我想知道是否使用JavaScript通过http或https访问该页面.是否有某种isSecure()方法,或者我应该以某种方式将其解析出来?

javascript https

51
推荐指数
2
解决办法
3万
查看次数

如何让log4j在启动时清除日志?

我希望只要应用程序正在运行就会滚动日志,但我希望在重新启动应用程序时重新启动日志.

更新: 根据erickson的反馈,我的appender看起来像这样:

   <appender name="myRFA" class="org.apache.log4j.RollingFileAppender">
      <param name="File" value="my-server.log"/>
      <param name="Append" value="false" />
      <param name="MaxFileSize" value="10MB"/>
      <param name="MaxBackupIndex" value="10"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern"
            value="%d{ISO8601} %p - %t - %c - %m%n"/>
      </layout>
   </appender>
Run Code Online (Sandbox Code Playgroud)

我只是添加了以下行:

<param name="Append" value="false" />
Run Code Online (Sandbox Code Playgroud)

它现在在启动时截断基本日志文件,但它会单独保留已滚动的文件.

java logging log4j

32
推荐指数
2
解决办法
3万
查看次数

是否可以更改JSF中的元素id分隔符?

例如,以下代码段:

<h:form id="levelone">
    <h:inputText id="leveltwo" value="Test" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

生成以下标记:

<form id="levelone" name="levelone" method="post" action="/test/testPage.html" 
      enctype="application/x-www-form-urlencoded">
   <input id="levelone:leveltwo" type="text" name="levelone:leveltwo" 
          value="Test" />
</form>
Run Code Online (Sandbox Code Playgroud)

是否可以更改自动生成的ID以使用与冒号不同的分隔符?

例如,我想改变

levelone:leveltwo
Run Code Online (Sandbox Code Playgroud)

levelone-leveltwo
Run Code Online (Sandbox Code Playgroud)

背景

我们在webapp中使用Mojo JavaScript应用程序框架,它似乎不喜欢id中的冒号.

html java jsf facelets

9
推荐指数
1
解决办法
3317
查看次数

有没有办法使用ant有条件地复制文件?

我有以下目标:

<target name="promptforchoice">

  <input addproperty="choice">
     Copy the file?.  [Y, n]
  </input>

    <condition property="copy.file">
        <or>
            <equals arg1="Y" arg2="${choice}"/>
            <equals arg1="y" arg2="${choice}"/>
        </or>
    </condition>

</target>
Run Code Online (Sandbox Code Playgroud)

在另一个目标中,我想根据是否设置copy.file属性有条件地复制文件.这可能吗?还有其他方法可以实现吗?


我的解决方案

以下是我根据ChrisH的反应提出的建议.

<target name="promptforchoice">

  <input addproperty="choice">
     Copy the file?.  [Y, n]
  </input>

    <condition property="copy.file">
        <or>
            <equals arg1="Y" arg2="${choice}"/>
            <equals arg1="y" arg2="${choice}"/>
        </or>
    </condition>

</target>

<target name="copyfile" if="copy.file">
    <copy file="file1.cfg" tofile="file2.cfg"/>
</target>

<target name="build" depends="promptforchoice">
    <antcall target="copyfile"/>

    <!--  Other stuff goes here -->

</target>
Run Code Online (Sandbox Code Playgroud)

谢谢!

java ant

8
推荐指数
1
解决办法
3049
查看次数

是否可以通过refid在ant中包含/排除文件列表?

我们目前有一个ant任务,其中包含类似于以下内容的内容:

     <filelist dir="${css.dir}" id="ordered_css">
        <file name="interface/foo.css" />
        <file name="pages/monkey.css" />
        <file name="pages/ninja.css" />
        <file name="pages/sidebar.css" />
        <file name="pages/bar.css" />
        <file name="pages/baz.css" />
        <file name="pages/robot.css" />
     </filelist>

     <patternset id="exclude_css">
        <exclude name="interface/foo.css" />
        <exclude name="pages/monkey.css" />
        <exclude name="pages/ninja.css" />
        <exclude name="pages/sidebar.css" />
        <exclude name="pages/bar.css" />
        <exclude name="pages/baz.css" />
        <exclude name="pages/robot.css" />
     </patternset>
Run Code Online (Sandbox Code Playgroud)

然后任务在这里引用模式集:

 <fileset dir="${css.dir}" id="stuff_css" includes="*/stuff/*.css">
    <patternset refid="exclude_css" />
 </fileset>
Run Code Online (Sandbox Code Playgroud)

进一步说,它在这里引用了文件集:

<concat destfile="build/all.css" append="false" force="yes">
    <filelist refid="ordered_css" />
    <fileset refid="stuff_css" />
</concat>
Run Code Online (Sandbox Code Playgroud)

有没有办法将两个文件列表合并为一个可以在两个地方引用的类型?到目前为止,我还没有找到方法,因为模式集包含排除.我希望能够简单地创建一个文件列表并包含或排除引用的列表.

java ant

7
推荐指数
1
解决办法
3550
查看次数

在NetBeans 7.1中调试Java代码时如何更改变量的值?

我设置了一个断点,允许我在对象的字段中查看值.我想更改值然后继续执行,但后来我尝试编辑变量视图中的值,值字段显示为灰色.调试时有没有办法改变变量值?

java debugging netbeans netbeans-7.1

7
推荐指数
2
解决办法
1万
查看次数

Apache Velocity:是否有一种从命令行验证模板正确性的标准方法?

我们的网站使用Apache Velocity模板语言.我们的内容管理系统已经检查了所有生成的XML文档是否格式良好.在将文件推送到实际站点之前,我们已经被要求检查文档以捕获Velocity语法错误.

是否有一种从命令行验证Velocity模板正确性的标准方法?

我准备读取模板路径,初始化Velocity Engine,解析模板,捕获任何错误,如本页所示,但是如果有一个现成的工具,它接受一个文件和一个配置,并吐出任何错误,那我宁愿用那个.


更新

这是我最终做的事情:

package velocitysample;

import java.io.IOException;
import java.io.StringWriter;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.MethodInvocationException;

public class Main
{
   /** Define a static logger variable so that it references the Logger
    *  instance named "MyApp".
    */
    private static Logger logger = Logger.getLogger(Main.class);


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {

        /* Set up a simple …
Run Code Online (Sandbox Code Playgroud)

java apache velocity

6
推荐指数
1
解决办法
9181
查看次数

如何使用Log4J和Apache Chainsaw远程查看日志事件?

我有一个Java Web应用程序,目前使用Log4J进行日志记录.我想使用Apache Chainsaw远程查看和解析日志.到目前为止,我无法理解如何设置客户端(Chainsaw客户端)和服务器端(我的webapp中的log4j配置)以成功启用远程日志记录.

这是我到目前为止所尝试的.

服务器端log4j配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true">

   <appender name="myRFA" class="org.apache.log4j.RollingFileAppender">
      <param name="File" value="/logs}/my.log"/>
      <param name="Append" value="false" />
      <param name="MaxFileSize" value="10MB"/>
      <param name="MaxBackupIndex" value="10"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern"
            value="%d{ISO8601} %p - [%X{LoggingId}] - %t - %c - %m%n"/>
      </layout>
   </appender>

   <appender name="SOCKET" class="org.apache.log4j.net.SocketAppender">
      <param name="Port" value="4445"/>
      <param name="RemoteHost" value="localhost"/>
      <param name="ReconnectionDelay" value="60000"/>
      <param name="Threshold" value="DEBUG"/>
   </appender>

   <logger name="com" additivity="false">
      <level value="warn"/>
      <appender-ref ref="myRFA"/>
   </logger>

   <logger name="org" additivity="false">
      <level value="warn"/> …
Run Code Online (Sandbox Code Playgroud)

java logging log4j apache-chainsaw

6
推荐指数
1
解决办法
6113
查看次数

对返回到浏览器的“请求实体太大”(HTTP 413) 错误消息进行故障排除

我们的 Web 应用程序的用户有时会遇到以下错误消息:

Request Entity Too Large
The requested resource
/ourapp/ourlocation/
does not allow request data with GET requests, or the amount of data provided in the request exceeds the capacity limit.
Run Code Online (Sandbox Code Playgroud)

我们检查了日志,但找不到任何似乎与上述错误相关的条目。经过一些研究,我认为问题在于请求的某些方面对于某些代理服务器来说太大了,并且代理将 413 错误返回给用户的 Web 浏览器。(不过,这只是一个猜测。)

您有什么想法可以找出导致此错误的原因吗?到目前为止,我已经使用Charles Web Debugging ProxyLiveHTTPHeaders来尝试观察给定页面的每个请求使用了多少字节。

以下是一些可能有助于我进行故障排除的其他问题。

  1. 允许的最大 cookie 大小是多少?4096 字节?
  2. GET 请求的哪些部分计入错误消息中引用的容量限制?
  3. GET 请求的最大大小是多少?

cookies proxy http

5
推荐指数
1
解决办法
2万
查看次数