我从dfm <- melt(my.dat, id.vars = c("group1", "group2","group3"))
lapply(list(.(group1, variable), .(group2, variable),.(group3, variable)),
ddply, .data = dfm, .fun = summarize,
mean = mean(value),
sd = sd(value),
N=length(value),
se=sd/sqrt(N))
DefaultLogger
创建了一个子类:
org.apache.tools.ant.DefaultLogger
我参加了信息here。
所以我从public class ExtendedLogger extends DefaultLogger {
// My stuff
}
重载了一些方法:
DefaultLogger
效果很好(我可以看到输出)。
这些方法也有效:
@Override
public void targetStarted(BuildEvent event){
System.out.println("Logger : "+"[TARGET STARTED]\n");
}
@Override
public void targetFinished(BuildEvent event){
System.out.println("Logger : "+"[TARGET FINISHED]\n");
}
但我有麻烦:
public void taskStarted(BuildEvent event);
public void taskFinished(BuildEvent event);
不可能采用这些方法!
我哪里错了?
感谢。
编辑12/01/2016:
我刚尝试了一个像@Vaspar这样简单的testBuild.xml:
@Override
public void buildFinished(BuildEvent event) {
System.out.println("Logger : "+"[BUILD FINISHED]\n");
}
@Override
public void buildStarted(BuildEvent event) {
System.out.println("Logger : "+"[BUILD STARTED]\n");
}
输出是:
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="Init" basedir=".">
<target name="Init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<echo message="INIT-ING"/>
</target>
<!-- targets used in my project -->
<target name="Clean" description="Clean output directory.">
<echo>Clean</echo>
</target>
<target name="CleanAutogenerated" description="Clean auto-generated folder.">
<echo>CleanAutogenerated</echo>
</target>
<target name="AutoGenerateTopics" description="Manual specific targets.">
<echo>AutoGenerateTopics</echo>
</target>
<target name="BuildDocument" description="Build full documentation">
<echo>BuildDocument</echo>
</target>
</project>
请注意,Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=Clean]
Logger : [TASK STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@12f33e1]
[echo] Clean
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@12f33e1]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=Clean]
CleanDocumentTask DONE
Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=CleanAutogenerated]
Logger : [TASK STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@1e2862f]
[echo] CleanAutogenerated
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@1e2862f]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=CleanAutogenerated]
CleanAutoGenerateTask DONE
Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=AutoGenerateTopics]
Logger : [TASK STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@19bf1ed]
[echo] AutoGenerateTopics
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@19bf1ed]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=AutoGenerateTopics]
AutoGenerateTask DONE
Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=BuildDocument]
Logger : [TASK STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@10b85cb]
[echo] BuildDocument
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@10b85cb]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=BuildDocument]
DocumentTask DONE
,CleanDocumentTask DONE
等等是我项目中的纯Java输出(不是ant)。
如您所见,DocumentTask DONE
或targetStarted
仍然没有输出:/
编辑12/01/2016(2):
我的 ExtendedLogger.java 的内容:
targetFinished
答案 0 :(得分:0)
令人惊讶的。我使用了您的代码示例,并且我也能够获取buildStarted / buildFinished日志。
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.DefaultLogger;
public class CustomLogger extends DefaultLogger{
@Override
public void targetStarted(BuildEvent event){
System.out.println("Logger : "+"[TARGET STARTED] " + event);
}
@Override
public void targetFinished(BuildEvent event){
System.out.println("Logger : "+"[TARGET FINISHED] " + event);
}
@Override
public void taskStarted(BuildEvent event) {
System.out.println("Logger : "+"[TASK FINISHED] " + event);
}
@Override
public void taskFinished(BuildEvent event) {
System.out.println("Logger : "+"[TASK FINISHED] " + event);
}
@Override
public void buildFinished(BuildEvent event) {
System.out.println("Logger : "+"[BUILD FINISHED] " + event);
}
@Override
public void buildStarted(BuildEvent event) {
System.out.println("Logger : "+"[BUILD STARTED] " + event);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="init" basedir=".">
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<echo message="INIT-ING"/>
</target>
</project>
以下是输出。
/DummyTest> ant -logger CustomLogger
Buildfile: /DummyTest/build.xml
Logger : [BUILD STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.Project@1318bd3c]
Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=init]
[tstamp] Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@31623389]
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@31623389]
[echo] Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@636c7a8f]
[echo] INIT-ING
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@636c7a8f]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=init]
Logger : [BUILD FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.Project@1318bd3c]