小编Whi*_*ses的帖子

如何使用 log4j 在 syslog 中整合多行日志

我正在使用 rsyslog 将我的 var/log/message 提供给工具。但是,正如您所看到的,异常出现在多行(每行的时间戳不同)中,而不是记录为单行。我希望它看起来像 catalina.out 消息。有什么办法可以做到这一点。任何帮助将不胜感激。

catalina.out 看起来像这样:

at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
Run Code Online (Sandbox Code Playgroud)

var/log/message 看起来像这样

2014-02-20T06:21:32.006782+00:00 something148-084-115 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
2014-02-20T06:21:32.006782+00:00 something148-084-115 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
2014-02-20T06:21:32.006784+00:00 something148-084-115 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
2014-02-20T06:21:32.006784+00:00 something148-084-115 at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
2014-02-20T06:21:32.006786+00:00 something148-084-115 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
Run Code Online (Sandbox Code Playgroud)

log4j.xml -

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
   <appender name="console" class="org.apache.log4j.ConsoleAppender">
      <param name="Target" value="System.out" />
      <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} abc: [component=&quot;XYZ&quot; priority=&quot;%p&quot; thread=&quot;%t&quot;] %c.%M:%L - %m%n" /> …
Run Code Online (Sandbox Code Playgroud)

java log4j syslog rsyslog

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

使用 JAXB 生成的代码中没有枚举

我的枚举类

@XmlType
@XmlEnum(Integer.class)
public enum  Error {

 @XmlEnumValue("1")
    ENUM_VALUE_1(1, "some string 1", "some string 1"),
 @XmlEnumValue("2")
    ENUM_VALUE_2(2, "some string 2", "some string 2");

  private Error(int errorCode, String msgKey, String message) {
    this.errorCode = errorCode;
    this.msgKey = msgKey;
    this.message = message;
 }
}
Run Code Online (Sandbox Code Playgroud)

生成的 xsd

<xs:simpleType name="error">
   <xs:restriction base="xs:int">
     <xs:enumeration value="1"/>
     <xs:enumeration value="2"/>
   </xs:restriction>
</xs:simpleType> 
Run Code Online (Sandbox Code Playgroud)

我正在使用的绑定

 <jaxb:bindings schemaLocation="schema.xsd">
     <jaxb:bindings node="//xs:simpleType[@name='error']">
         <jaxb:typesafeEnumClass ref="packageName.Error" />
     </jaxb:bindings>
 </jaxb:bindings>
Run Code Online (Sandbox Code Playgroud)

问题是没有生成枚举文件。我正在使用“maven-jaxb2-plugin”进行代码生成。

enums code-generation jaxb

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

在多列上使用Spring数据中的distinct

我的域名模型是这样的:

CollectedData {
  String name;
  String description;
  int count;
  int xAxis,
  int yAxis
}
Run Code Online (Sandbox Code Playgroud)

使用Spring数据存储库查询,我想检索所有唯一的行(唯一的名称,xAxis,yAxis)

我正在尝试这样的事情

@Query("select distinct a.name, a.xAxis, a.yAxis from CollectedData a")
List<CollectedData> findAllDistinctData();
Run Code Online (Sandbox Code Playgroud)

所以,当我这样做的时候

List<CollectedData> records= findAllDistinctData();
for (CollectedData record : records) { //Exception on this line
 }
Run Code Online (Sandbox Code Playgroud)

异常[Ljava.lang.Object; 无法转换为CollectedData.

有没有其他方法可以为此编写查询?

spring hibernate spring-data spring-data-jpa

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

SMTP TLS不适用于Gmail

我想编写一个使用SMTP TLS连接gmail服务器的程序.我使用的是本页提到的代码:

http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/

我正在连接超时异常.如果我使用SMTP SSL,我可以成功发送电子邮件.

public void sendUsingSMTP_TLS() {
    final String username = "username@gmail.com";
    final String password = "password";

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
      });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("from-email@gmail.com"));
        message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse("to-email@gmail.com"));
        message.setSubject("Testing Subject");
        message.setText("Dear Mail Crawler,"
            + "\n\n No spam to my email, please!");

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) { …
Run Code Online (Sandbox Code Playgroud)

java email gmail smtp

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