Tag: logging

静音Stanford coreNLP日志记录

首先,Java不是我常用的语言,所以我对它非常基础。 我需要将它用于这个特定项目,所以请耐心等待,如果我遗漏了任何相关信息,请提出要求,我很乐意提供。 我已经能够实现coreNLP,并且,似乎已经正常工作,但是产生了许多消息,如: ene 20, 2017 10:38:42 AM edu.stanford.nlp.process.PTBLexer next ADVERTENCIA: Untokenizable: 【 (U+3010, decimal: 12304) 经过一些研究(文档,谷歌,其他线程),我认为 (对不起,我不知道我怎么能确定)coreNLP正在我的类路径中找到slf4j-api.jar并记录它。 我可以使用哪些JVM属性来设置将要打印的消息的日志记录级别? 另外,我可以在哪个.properties文件中设置它们? (我已经在项目的资源文件夹中有一个commons-logging.properties ,一个simplelog.properties和一个StanfordCoreNLP.properties来设置其他包的属性)。

获取从中触发SQL查询的包的名称?

我在webapp中使用jdbcdslog和log4j日志引擎。 我能够记录执行的SQL查询。 我想知道如何获取从中触发查询的包的名称。 这样我就可以分离出日志信息,并通过查看日志知道查询的位置,而不是通过代码。 我尝试使用Log4j的PatternLayout中的%C参数来获取此处提到的包名称 但我得到的输出是 2013-07-30-main–INFO -org.jdbcdslog.StatementLogger:java.sql.Statement.executeQuery: SELECT id, first, last, age FROM Employees; 如您所见,记录了SQL查询,但它给出的类是org.jdbcdslog.StatementLogger。 这不是我们想要的,因为我想从查询被激活的类的名称。 我在Log4j.properties文件中使用以下设置 log4j.appender.S.layout.ConversionPattern=%d{yyyy-MM-dd}-%t-%x-%-5p-%C:%m%n 这是因为jdbcdslog包装了与JDBC驱动程序的连接。 我想知道如何获取触发查询的类的名称。

新项目使用log4j而不是Logback的任何原因?

我知道常见的意思是Logback> log4j。 仍然,有什么log4j比Logback更好吗? 有什么理由使用log4j而不是logback? 事实上它只有60个关于堆栈溢出的问题,所以我假设一个小得多的用户群?

没有catalina.out

我不知道,如何以及如何设置,在我的计算机上的Tomcat上安装catalina.out。 我在Windows XP上使用Tomcat 6.0.28,zipped-version。 要启动服务器,我只需运行startup.bat-file。 我做错了吗?! 提前感谢任何建议。 穆尔 [已编辑]所有记录(例外或System.out)将写入控制台窗口。 在哪里设置,他们会被写入catalina.out? 正如我在其中一条评论中所写的,如果我使用安装版本安装Tomcat,所有消息都会出现在stdout_YYYYMMDD.log中,我看不到,在哪里更改它。

如何在log4j2中创建滚动文件appender插件

我想创建一个自定义log4j2滚动文件appender。 我需要创建这个自定义appender,因为我想用我的应用程序特有的一些信息包装log4j日志事件。 例如userId,托管的应用程序名称。 我有一个扩展Log4jLogEvent实现LogEvent的类。 这个类包含了我需要用日志事件包装的信息。 请看这段代码: public class CustomLogEvent extends Log4jLogEvent implements LogEvent { private String userId; private String applicationName; private static final long serialVersionUID = 1L; public CustomLogEvent(String loggerName, Marker marker, String loggerFQCN, Level level, Message message, Throwable t, Map mdc, ThreadContext.ContextStack ndc, String threadName, StackTraceElement location, long timestamp){ super(loggerName,marker,loggerFQCN,level,message,t,mdc,ndc,threadName,location,timestamp); } //Getters and setters […]

使用Java Logging API记录Oracle Java存储过程(java.util.logging)

我在Oracle(10g)中开发了一个新的Java(1.4)存储过程。 我以前从未这样做过,我通常会将Java和DB分开,但这是必需的。 所以我开发了一个可以部署在Tomcat中的Java代码以及Oracle中的存储过程。 为此,我使用了Java Logging API。 我可以在Oracle中执行存储过程,但是找不到日志。 我想知道我应该怎么做才能打印日志,它可以是Oracle日志或trc文件,甚至,如果可能的话,配置它以将日志打印到另一个特定文件夹。 有谁知道如何实现这一目标?

WAS日志记录 – Java Util Logging和Log4j

我正在寻求以下确认: 使用Websphere Application Server管理控制台,我们可以指定一些日志记录配置,并显示应用程序的类(如下所示)。 如果我在WAS控制台中启用日志记录,它是否只有在我的应用程序(以及其中提到的其他类)已实现JUL的情况下才能工作? 默认情况下,使用WAS控制台的日志记录在跟踪文件($ {SERVER_LOG_ROOT} /trace.log)中完成。 这可以用于控制台吗? (我想是的,只需将其更改为$ {SERVER_LOG_ROOT} /SystemOut.log) 有没有办法从WAS控制台配置Log4j属性? (我认为不,因此我们需要使用其他方法使其可以配置Log4j)。 PS:我知道JUL提供了抽象以及它自己的实现。 上面的问题被要求记住JUL的实施:)

删除文件追加器后,Log4j2不会登录到服务器

我遇到了一个奇怪的问题,我不明白: 当我删除我的File appender时,它阻止我登录到我的服务器,即使File appender不应该负责将任何内容记录到服务器; 该任务应仅适用于我的GELF appender。 以下代码能够将两者都记录到我的控制台和服务器上 Java的 import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class App { private static final Logger log4j = LogManager.getLogger(App.class.getName()); public static void main(String[] args) { log4j.info(“This is my info message”); log4j.warn(“This is my warning message”); log4j.error(“This is my error message”); log4j.fatal(“This is my fatal message”); } } XML %d{MM/dd/yyyy hh:mm:ss} %5p […]

奇怪的黑莓日志

我正在使用下面的代码,作为推送通知实现的一部分: private static final String BPAS_URL = “http://pushapi.eval.blackberry.com”; private static final String APP_ID = “3582-M4687r9k9k836r980kO2395i32i66y11a34”; String registerUrl = formRegisterRequest(BPAS_URL, APP_ID, null) + “;deviceside=false;ConnectionType=mds-public”; System.out.println(“\n\n\n !!msg registerBPAS URL is: “+ registerUrl + “\n\n”); 其中: private static String formRegisterRequest(String bpasUrl, String appId, String token) { StringBuffer sb = new StringBuffer(bpasUrl); sb.append(“/mss/PD_subReg?”); sb.append(“serviceid=”).append(appId); sb.append(“&osversion=”).append(DeviceInfo.getSoftwareVersion()); sb.append(“&model=”).append(DeviceInfo.getDeviceName()); if (token != […]

如何以编程方式将AccessLogValve添加到Tomcat?

我正在开发一个Spring启动应用程序,我想通过我的slf4j日志系统将Tomcat的访问日志路由到远程系统日志。 因为它是Spring,所以我想避免触及tomcat的server.xml文件。 我的AccessLogValve非常简单: import java.io.CharArrayWriter; import org.apache.catalina.valves.AccessLogValve; public class Log4JAccessLogValve extends AccessLogValve { @Override public void log(CharArrayWriter message) { log.info(message.toString()); } } 而且我希望可以使用这样的东西将它连接到Tomcat: @Component public class LogConfig { @Autowired private ServletContext servletContext; @PostConstruct public void setAccessLogValve() { ((ApplicationContextFacade)servletContext).addValve(new Log4JAccessLogValve()); } } 除了addValve()方法不存在… 那么……任何人都知道如何在我的AccessLogValve中挂钩? 我也接受完全不同的建议,以获取访问日志到远程系统日志,但我们正在制作数十个微服务,所以它必须是一个非常标准化的方法,很容易实现每个微服务。