站点更新:2019-01-22 15:38:12

dev
ehlxr 2019-01-22 15:38:12 +08:00
parent 6673306bb8
commit de16f1cf12
14 changed files with 455 additions and 138 deletions

1
.gitignore vendored
View File

@ -12,3 +12,4 @@ target
/useful-code.iml
/.idea
/resources/debug.log
java-utils.iml

View File

@ -1,111 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
</webroots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_10">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.53" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk16:1.46" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.11" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.2.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.6.4" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.8.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-test:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jms:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.6" level="project" />
<orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.5" level="project" />
<orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
<orderEntry type="library" name="Maven: com.caucho:hessian:4.0.38" level="project" />
<orderEntry type="library" name="Maven: redis.clients:jedis:2.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.3" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.38" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.7" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.1.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.generator:mybatis-generator-core:1.3.2" level="project" />
<orderEntry type="library" name="Maven: c3p0:c3p0:0.9.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.1.6" level="project" />
<orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-core:3.1.6" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.4.1" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-wsdl:3.1.6" level="project" />
<orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-databinding-jaxb:3.1.6" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.1.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-simple:3.1.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-addr:3.1.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-policy:3.1.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.neethi:neethi:3.0.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.1.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.activemq:activemq-all:5.13.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.xbean:xbean-spring:4.5" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
<orderEntry type="library" name="Maven: org.powermock:powermock-module-junit4:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.powermock:powermock-module-junit4-common:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.powermock:powermock-reflect:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.powermock:powermock-core:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.powermock:powermock-api-mockito2:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.powermock:powermock-api-mockito-common:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.powermock:powermock-api-support:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.mockito:mockito-core:2.8.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: net.bytebuddy:byte-buddy:1.6.14" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: net.bytebuddy:byte-buddy-agent:1.6.14" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.5" level="project" />
<orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.0" level="project" />
<orderEntry type="library" name="Maven: io.reactivex.rxjava2:rxjava:2.1.8" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:22.0" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.0.18" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.14" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-props:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-core:3.6.1" level="project" />
</component>
</module>

70
pom.xml
View File

@ -6,7 +6,7 @@
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>useful-code Maven Webapp</name>
<name>java-utils</name>
<url>http://maven.apache.org</url>
<properties>
@ -19,6 +19,7 @@
<file_encoding>utf-8</file_encoding>
<jdk.verion>1.8</jdk.verion>
<powermock.version>1.7.1</powermock.version>
<kotlin.version>1.2.60</kotlin.version>
</properties>
<dependencies>
@ -263,6 +264,27 @@
<artifactId>jodd-props</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>cn.ceres.did</groupId>
<artifactId>did-sdk</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.enncloud.ceres</groupId>
<artifactId>ceres</artifactId>
<version>1.1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test</artifactId>
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>java-utils</finalName>
@ -360,6 +382,52 @@
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<configuration>
<jvmTarget>1.8</jvmTarget>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<defaultGoal>compile</defaultGoal>
</build>
</project>

Binary file not shown.

View File

@ -28,8 +28,29 @@ public class CharToHex {
String oct = Integer.toOctalString(i);
System.out.println(oct);
System.out.println("---------------");
System.out.println(Integer.toBinaryString(-22));
//测试 int 转 byte
int int0 = 234;
byte byte0 = intToByte(int0);
System.out.println("byte0= " + byte0);//byte0=-22
//测试 byte 转 int
int int1 = byteToInt(byte0);
System.out.println("int1= " + int1);//int1=234
}
//byte 与 int 的相互转换
public static byte intToByte(int x) {
return (byte) x;
}
public static int byteToInt(byte b) {
//Java 总是把 byte 当做有符处理;我们可以通过将其和 0xFF 进行二进制与得到它的无符值
return b & 0xFF;
}
/**
*
*

View File

@ -0,0 +1,29 @@
package me.ehlxr;
import cn.ceres.did.client.SdkClient;
import cn.ceres.did.sdk.SdkProto;
import java.util.concurrent.CountDownLatch;
/**
* @author ehlxr
*/
public class DidSdkTest {
public static void main(String[] args) throws Exception {
SdkClient client = new SdkClient("10.19.248.200", 30581);
// SdkClient client = new SdkClient();
client.init();
client.start();
// client.invokeOneWay(new SdkProto(), 2000);
// System.out.println(client.invokeSync(new SdkProto(), 2000).getDid());
CountDownLatch countDownLatch = new CountDownLatch(1);
client.invokeAsync(new SdkProto(), 2000, responseFuture -> {
System.out.println(responseFuture.getSdkProto().getDid());
countDownLatch.countDown();
});
countDownLatch.await();
client.shutdown();
}
}

View File

@ -0,0 +1,44 @@
package me.ehlxr;
import java.io.*;
/**
* @author ehlxr
*/
public class FindRequestMapping {
private static int total = 0;
private static int unDeal = 0;
public static void main(String[] args) throws IOException {
File dir = new File("/Users/ehlxr/WorkSpaces/enncloud/ceres-epns/ceres-epns-web/src/main/java/com/ceres/epns/web");
deal(dir);
}
private static void deal(File file) throws IOException {
if (file.isDirectory()) {
File[] fs = file.listFiles(((dir, name) -> {
File f = new File(dir.getPath() + File.separator + name);
return (f.getPath().contains("src") && name.endsWith(".java")) || f.isDirectory();
}));
for (File f : fs != null ? fs : new File[0]) {
deal(f);
}
} else {
InputStreamReader read = new InputStreamReader(new FileInputStream(file));
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt;
while ((lineTxt = bufferedReader.readLine()) != null) {
if (lineTxt.contains("@RequestMapping")) {
System.out.println(lineTxt);
}
}
bufferedReader.close();
read.close();
}
}
}

View File

@ -0,0 +1,15 @@
package me.ehlxr
/**
* Created by lixiangrong on 2018/8/17.
*/
fun main(args: Array<String>) {
val strList = listOf("a", "ab", "abc","abcd","abcde","abcdef","abcdefg")
// 非常好用的流式 API filterflatmap 等等
strList.forEach{str->
run {
str.length
println(str)
}
}
}

View File

@ -0,0 +1,31 @@
package me.ehlxr;
/**
* @author lixiangrong
* @date 2018/8/21
*/
public class ReferenceCountingGC {
public Object instance = null;
private static final int _1MB = 1024 * 1024;
/**
* 便 GC
*/
private byte[] bigSize = new byte[2 * _1MB];
public static void testGC() {
ReferenceCountingGC objA = new ReferenceCountingGC();
ReferenceCountingGC objB = new ReferenceCountingGC();
objA.instance = objB;
objB.instance = objA;
objA = null;
objB = null;
// 假设在这行发生 GCobjA 和 objB 是否能被回收?
System.gc();
}
public static void main(String[] args) {
testGC();
}
}

View File

@ -3,13 +3,19 @@ package me.ehlxr;
import java.io.*;
/**
* Created by lixiangrong on 2017/3/27.
* @author lixiangrong
* @date 2017/3/27
*/
public class Rename {
public static void main(String[] args) {
File dir = new File("/Users/ehlxr/Desktop/_posts/");
File dir = new File("/Users/ehlxr/ehlxr/blog/posts");
File[] files = dir.listFiles();
if (null == files || files.length <= 0) {
System.out.println("sources is null!");
return;
}
int count = 0;
for (File file : files) {
try {
String oName = file.getName();
@ -19,31 +25,23 @@ public class Rename {
String nName = date + "-" + title + ".md";
copyFileUsingFileStreams(file, new File("/Users/ehlxr/Desktop/posts/" + nName));
copyFileUsingFileStreams(file, new File("/Users/ehlxr/Desktop/post/" + nName));
count++;
} catch (Exception e) {
continue;
System.out.println("exce file [ " + file.getName() + " ] error, reason: " + e.getMessage());
}
}
System.out.println("complete: " + count);
}
private static void copyFileUsingFileStreams(File source, File dest)
throws IOException {
InputStream input = null;
OutputStream output = null;
try {
input = new FileInputStream(source);
output = new FileOutputStream(dest);
try (InputStream input = new FileInputStream(source); OutputStream output = new FileOutputStream(dest)) {
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = input.read(buf)) > 0) {
output.write(buf, 0, bytesRead);
}
} finally {
input.close();
output.close();
}
}
}

View File

@ -0,0 +1,40 @@
package me.ehlxr;
import cn.enncloud.ceres.utils.NamedThreadFactory;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* @author lixiangrong
* @date 2018/8/27
*/
public class ScheduledThreadPoolExecutorTest {
private ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory("TestTimer", true));
private ScheduledFuture<?> scheduledFuture;
private static CountDownLatch countDownLatch = new CountDownLatch(1);
private void start() {
scheduledFuture = scheduledThreadPoolExecutor.scheduleAtFixedRate(() -> {
System.out.println(scheduledThreadPoolExecutor.getQueue() + " " + Thread.currentThread().getName());
scheduledFuture.cancel(false);
// System.out.println(scheduledThreadPoolExecutor.remove(pingCommand));
// System.out.println(scheduledThreadPoolExecutor.getRemoveOnCancelPolicy());
// scheduledThreadPoolExecutor.setRemoveOnCancelPolicy(true);
System.out.println(scheduledThreadPoolExecutor.getQueue() + " " + Thread.currentThread().getName());
// System.out.println(scheduledThreadPoolExecutor.getActiveCount());
countDownLatch.countDown();
}, 2, 5, TimeUnit.SECONDS);
}
public static void main(String[] args) throws InterruptedException {
ScheduledThreadPoolExecutorTest test = new ScheduledThreadPoolExecutorTest();
test.start();
countDownLatch.await();
}
}

View File

@ -0,0 +1,183 @@
package me.ehlxr;
/**
* Twitter_Snowflake<br>
* SnowFlake(-):<br>
* 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 <br>
* SnowFlakeID(IDID)
*
* @author ehlxr
*/
public class SnowflakeIdWorker {
/**
* (2015-01-01)
*/
private final long twepoch = 1420041600000L;
/**
* id
*/
private final long workerIdBits = 5L;
/**
* id
*/
private final long datacenterIdBits = 5L;
/**
* id31 ()
*/
private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
/**
* id31
*/
private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
/**
* id
*/
private final long sequenceBits = 12L;
/**
* ID12
*/
private final long workerIdShift = sequenceBits;
/**
* id17(12+5)
*/
private final long datacenterIdShift = sequenceBits + workerIdBits;
/**
* 22(5+5+12)
*/
private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
/**
* 4095 (0b111111111111=0xfff=4095)
*/
private final long sequenceMask = -1L ^ (-1L << sequenceBits);
/**
* ID(0~31)
*/
private long workerId;
/**
* ID(0~31)
*/
private long datacenterId;
/**
* (0~4095)
*/
private long sequence = 0L;
/**
* ID
*/
private long lastTimestamp = -1L;
/**
*
*
* @param workerId ID (0~31)
* @param datacenterId ID (0~31)
*/
public SnowflakeIdWorker(long workerId, long datacenterId) {
if (workerId > maxWorkerId || workerId < 0) {
throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
}
if (datacenterId > maxDatacenterId || datacenterId < 0) {
throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
}
this.workerId = workerId;
this.datacenterId = datacenterId;
}
/**
* ID (线)
*
* @return SnowflakeId
*/
public synchronized long nextId() {
long timestamp = timeGen();
//如果当前时间小于上一次ID生成的时间戳说明系统时钟回退过这个时候应当抛出异常
if (timestamp < lastTimestamp) {
throw new RuntimeException(
String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
}
//如果是同一时间生成的,则进行毫秒内序列
if (lastTimestamp == timestamp) {
sequence = (sequence + 1) & sequenceMask;
//毫秒内序列溢出
if (sequence == 0) {
//阻塞到下一个毫秒,获得新的时间戳
timestamp = tilNextMillis(lastTimestamp);
}
}
//时间戳改变,毫秒内序列重置
else {
sequence = 0L;
}
//上次生成ID的时间截
lastTimestamp = timestamp;
//移位并通过或运算拼到一起组成64位的ID
return ((timestamp - twepoch) << timestampLeftShift)
| (datacenterId << datacenterIdShift)
| (workerId << workerIdShift)
| sequence;
}
/**
*
*
* @param lastTimestamp ID
* @return
*/
protected long tilNextMillis(long lastTimestamp) {
long timestamp = timeGen();
while (timestamp <= lastTimestamp) {
timestamp = timeGen();
}
return timestamp;
}
/**
*
*
* @return ()
*/
protected long timeGen() {
return System.currentTimeMillis();
}
public static void main(String[] args) {
// SnowflakeIdWorker snowflakeIdWorker = new SnowflakeIdWorker(1, 2);
// System.out.println(snowflakeIdWorker.nextId());
// System.out.println(1<<30);
// System.out.println(1<<31);
// System.out.println(0xff>>>7);
// System.out.println(((short)0xff)>>>7);
// System.out.println(((byte)0xff)>>>7);
// System.out.println(((short)0xff));
// System.out.println(((byte)0xff));
// System.out.println((0xff));
//
//
// System.out.println(0xff==255);
// System.out.println(0xff==255);
System.out.println(~(-1L << 5));
}
}

View File

@ -1,16 +1,14 @@
package me.ehlxr;
import com.google.common.collect.Maps;
/**
* Created by lixiangrong on 2016/12/23.
*/
public class dfd {
public static void main(String[] args) {
var map = Maps.newHashMap();
map.put("d",1);
System.out.println(map);
// var map = Maps.newHashMap();
// map.put("d",1);
// System.out.println(map);
}
public void printCircle(int[][] matrix, int startX, int startY, int endX, int endY) {
// only one column left

View File

@ -19,9 +19,9 @@ log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%p] %-d{yyyy-MM-dd HH\:mm\:ss} [%t] [%c.%M\:%L] %m%n
log4j.appender.logFile=org.apache.log4j.RollingFileAppender
log4j.appender.logFile.File=${webapp.root}/logs/amq.log
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=[%p] %-d{yyyy-MM-dd HH\:mm\:ss} [%t] [%c.%M\:%L] %m%n
log4j.appender.logFile.MaxFileSize = 5MB
log4j.appender.logFile.MaxBackupIndex =3
#log4j.appender.logFile=org.apache.log4j.RollingFileAppender
#log4j.appender.logFile.File=${webapp.root}/logs/amq.log
#log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
#log4j.appender.logFile.layout.ConversionPattern=[%p] %-d{yyyy-MM-dd HH\:mm\:ss} [%t] [%c.%M\:%L] %m%n
#log4j.appender.logFile.MaxFileSize = 5MB
#log4j.appender.logFile.MaxBackupIndex =3