由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 关于 Java 的 Log 轮子
相关主题
有人用过slf4j simple logger么,太他妈的难用了Java 和 .Net 到底哪个更有好一点的前景?
怎样加jar文件到classpath (windows)when I run junit test, how can I log the java log to a file?
java logger 用哪一个好?有没支持million concurrent queries per second的数据系统SQL/NoSQL
其实微软是个做语言的公司Scala会不会把Java搞成第二个C++
向班上达人请教一个win7下面java编程的问题twitter又自己做了一個distributedLog.基于bookeeper
其实吧,C#是最好的语言。。。Cassandra VS ElasticSearch 一般 logging 哪个好
招人过程中关于语言一点小经验如何生成java 的exe文件?
请分析一下java和.Net的前途Malab里调用第三方的java class,总是不成功。
相关话题的讨论汇总
话题: java话题: log4j话题: log话题: classpath话题: slf4j
进入Programming版参与讨论
1 (共1页)
d*******r
发帖数: 3299
1
最近在用 Java 做一些 server-side services,要用到 Java 做 logging 的轮子。
研究了下,发现这个轮子貌似不错 http://logging.apache.org/log4j/2.x/manual/index.html
里面有各种 local file, remote, socket, noSQL 的 log pusher
http://logging.apache.org/log4j/2.x/manual/appenders.html#Flume
http://logging.apache.org/log4j/2.x/manual/appenders.html#JMSQu
http://logging.apache.org/log4j/2.x/manual/appenders.html#NoSQL
请问 Java 大牛,你们平时用的是这个 log4j2, 还是直接用自带的 java.util.
logging ?
g*****g
发帖数: 34805
2
看来你真是没写过 Java, 居然能问这个问题。

【在 d*******r 的大作中提到】
: 最近在用 Java 做一些 server-side services,要用到 Java 做 logging 的轮子。
: 研究了下,发现这个轮子貌似不错 http://logging.apache.org/log4j/2.x/manual/index.html
: 里面有各种 local file, remote, socket, noSQL 的 log pusher
: http://logging.apache.org/log4j/2.x/manual/appenders.html#Flume
: http://logging.apache.org/log4j/2.x/manual/appenders.html#JMSQu
: http://logging.apache.org/log4j/2.x/manual/appenders.html#NoSQL
: 请问 Java 大牛,你们平时用的是这个 log4j2, 还是直接用自带的 java.util.
: logging ?

p***o
发帖数: 1252
3
slf4j好用吗?

【在 g*****g 的大作中提到】
: 看来你真是没写过 Java, 居然能问这个问题。
d*******r
发帖数: 3299
4
确实是Java菜
大牛说说这个基础问题吧

【在 g*****g 的大作中提到】
: 看来你真是没写过 Java, 居然能问这个问题。
g*****g
发帖数: 34805
5
log4j大约是第一个主流开源轮子。跟 Ant差不多同时代的,现在还是主流。

【在 d*******r 的大作中提到】
: 确实是Java菜
: 大牛说说这个基础问题吧

g*********e
发帖数: 14401
6
就用这个
d*******r
发帖数: 3299
7
好的,那我就用 log4j2 了
m******3
发帖数: 184
8
slf4j吧,底下还是用log4j.

【在 d*******r 的大作中提到】
: 最近在用 Java 做一些 server-side services,要用到 Java 做 logging 的轮子。
: 研究了下,发现这个轮子貌似不错 http://logging.apache.org/log4j/2.x/manual/index.html
: 里面有各种 local file, remote, socket, noSQL 的 log pusher
: http://logging.apache.org/log4j/2.x/manual/appenders.html#Flume
: http://logging.apache.org/log4j/2.x/manual/appenders.html#JMSQu
: http://logging.apache.org/log4j/2.x/manual/appenders.html#NoSQL
: 请问 Java 大牛,你们平时用的是这个 log4j2, 还是直接用自带的 java.util.
: logging ?

h******k
发帖数: 388
9
jdk自己也有logging,和log4j差不多

【在 d*******r 的大作中提到】
: 最近在用 Java 做一些 server-side services,要用到 Java 做 logging 的轮子。
: 研究了下,发现这个轮子貌似不错 http://logging.apache.org/log4j/2.x/manual/index.html
: 里面有各种 local file, remote, socket, noSQL 的 log pusher
: http://logging.apache.org/log4j/2.x/manual/appenders.html#Flume
: http://logging.apache.org/log4j/2.x/manual/appenders.html#JMSQu
: http://logging.apache.org/log4j/2.x/manual/appenders.html#NoSQL
: 请问 Java 大牛,你们平时用的是这个 log4j2, 还是直接用自带的 java.util.
: logging ?

H****S
发帖数: 1359
10
等你project变大,直接和间接dependency变多时,这就是log4j,slf4j,logback开始
互相打架的时候了。那时候的问题才更有意思。
相关主题
其实吧,C#是最好的语言。。。Java 和 .Net 到底哪个更有好一点的前景?
招人过程中关于语言一点小经验when I run junit test, how can I log the java log to a file?
请分析一下java和.Net的前途有没支持million concurrent queries per second的数据系统SQL/NoSQL
进入Programming版参与讨论
d*******r
发帖数: 3299
11
大牛讲讲这个主要问题是为啥?

【在 H****S 的大作中提到】
: 等你project变大,直接和间接dependency变多时,这就是log4j,slf4j,logback开始
: 互相打架的时候了。那时候的问题才更有意思。

c******f
发帖数: 243
12
一直用slf4j
w**z
发帖数: 8232
13
每次看 log4j.properties 就想哭。

【在 H****S 的大作中提到】
: 等你project变大,直接和间接dependency变多时,这就是log4j,slf4j,logback开始
: 互相打架的时候了。那时候的问题才更有意思。

J****r
发帖数: 274
14
哎!人新手问个问题,您乐意回就回,瞧不上就别理他,发这种冷嘲热讽的话有啥意思
。谁不是从菜鸟过来的?

【在 g*****g 的大作中提到】
: 看来你真是没写过 Java, 居然能问这个问题。
H****S
发帖数: 1359
15
取决与log4j,slf4j和logback在classpath谁比较靠前,java process会寻求log4j.
xml 或者 logback.xml来配置logger。比如说,很多人会喜欢用一个简单的bash脚本来
启动Java程序,
CLASSPATH=
for JAR in `ls lib/*.jar`; do
CLASSPATH=$JAR:$CLASSPATH
done
java -cp $CLASSPATH ...
注意这个脚本在每次运行的时候得到的CLASSPATH顺序是不定的,特别是一个程序要被
deploy到多台servers上。
这就造成了你觉得自己明明已经配置好logback.xml了,为什么log里面啥都没有呢,那
是因为程序实际上在找log4j.xml (log4j jar 来自于一个transitive dependency)。
一般这种情况下就需要做一个reverse dependency analysis找出logback或者log4j将
其彻底清除掉,或者更一劳永逸的办法:用log4j over slf4j来redirect log4j call
back to slf4j

【在 d*******r 的大作中提到】
: 大牛讲讲这个主要问题是为啥?
r***y
发帖数: 4379
16
还成吧...
用 xml 配置也笑不到哪里去...

【在 w**z 的大作中提到】
: 每次看 log4j.properties 就想哭。
d*******r
发帖数: 3299
17
还好还好,goodbug Java 大牛,教了大家很多有用的东西
我真是Java菜,大家多指点 :)

【在 J****r 的大作中提到】
: 哎!人新手问个问题,您乐意回就回,瞧不上就别理他,发这种冷嘲热讽的话有啥意思
: 。谁不是从菜鸟过来的?

w**z
发帖数: 8232
18
为一个log 搞得鸡飞狗跳,确实说不过去。

【在 r***y 的大作中提到】
: 还成吧...
: 用 xml 配置也笑不到哪里去...

z*******3
发帖数: 13709
19
上cassandra和aop就好了
用java的应该都用spring吧?
用aop可以有效减少各种乱七八糟的log代码
结构也更合理,我针对每一个方法在调用前和后,各做一次拦截
获取相关数据,插入log,不过我不用log4j,找个nosql放
nosql就用来做这个的,cassandra很好
然后查的时候就查cassandra
要不然动不动就要grep,我的天

【在 w**z 的大作中提到】
: 为一个log 搞得鸡飞狗跳,确实说不过去。
z*******3
发帖数: 13709
20
项目变大了之后,不仅仅是log会有这个问题
其他依赖也都会开始打架,上gradle了

【在 H****S 的大作中提到】
: 等你project变大,直接和间接dependency变多时,这就是log4j,slf4j,logback开始
: 互相打架的时候了。那时候的问题才更有意思。

相关主题
Scala会不会把Java搞成第二个C++如何生成java 的exe文件?
twitter又自己做了一個distributedLog.基于bookeeperMalab里调用第三方的java class,总是不成功。
Cassandra VS ElasticSearch 一般 logging 哪个好选择C#/.Net做Backend较之Linux有什么Advantage吗?
进入Programming版参与讨论
z*******3
发帖数: 13709
21
java所有的项目
都经常依赖其他项目
比如a依赖b,c也依赖b,很正常
然后经常遇到的是比如,a依赖b的beta版
c依赖b的2.1版,然后b的某一个方法在beta和2.1版里面不太一样
然后你同时用了a和c,这个时候你突然发现
他们都依赖的b项目开始冲突了,因为b项目的向后兼容做得很糟糕
虽然b的jars都在你的classpath里面
但是你要注意先后顺序
这个时候你就要问怎么办了?
一般是maven或者gradle搞定
但是这个只能治标,治本还是需要自己对依赖的类库有所控制

【在 d*******r 的大作中提到】
: 大牛讲讲这个主要问题是为啥?
r***y
发帖数: 4379
22
赞分享
类似 logging level 啥的也是用 aop 控制?

【在 z*******3 的大作中提到】
: 上cassandra和aop就好了
: 用java的应该都用spring吧?
: 用aop可以有效减少各种乱七八糟的log代码
: 结构也更合理,我针对每一个方法在调用前和后,各做一次拦截
: 获取相关数据,插入log,不过我不用log4j,找个nosql放
: nosql就用来做这个的,cassandra很好
: 然后查的时候就查cassandra
: 要不然动不动就要grep,我的天

z*******3
发帖数: 13709
23
可以吧,加多一个参数就是了
不过我觉得既然不用log4j了
就没有必要严格遵循log的level标准
我一般就是输入,输出,exception这三个凑起来用
基本上就能搞定了,around部分,也就是方法执行过程中的监控
就相对少了很多,因为如果大量使用的话
就跟log4j的结构差不多了,所以一般都是不得不用时候才写进去
debug level一般我都是依赖ide来搞
嘿嘿

【在 r***y 的大作中提到】
: 赞分享
: 类似 logging level 啥的也是用 aop 控制?

k*****3
发帖数: 226
24
说得好

【在 J****r 的大作中提到】
: 哎!人新手问个问题,您乐意回就回,瞧不上就别理他,发这种冷嘲热讽的话有啥意思
: 。谁不是从菜鸟过来的?

r***y
发帖数: 4379
25
晕, 俺咋没读出啥"冷嘲热讽"啊.
goodbug 和 dumbCoder 这哥俩儿都是葵花版的活跃ID, 一个后台大牛, 一个前台新秀,
相互稔熟, 就是很随便的话赶话吧.

【在 J****r 的大作中提到】
: 哎!人新手问个问题,您乐意回就回,瞧不上就别理他,发这种冷嘲热讽的话有啥意思
: 。谁不是从菜鸟过来的?

r***y
发帖数: 4379
26
多谢分享

【在 z*******3 的大作中提到】
: 可以吧,加多一个参数就是了
: 不过我觉得既然不用log4j了
: 就没有必要严格遵循log的level标准
: 我一般就是输入,输出,exception这三个凑起来用
: 基本上就能搞定了,around部分,也就是方法执行过程中的监控
: 就相对少了很多,因为如果大量使用的话
: 就跟log4j的结构差不多了,所以一般都是不得不用时候才写进去
: debug level一般我都是依赖ide来搞
: 嘿嘿

d*******r
发帖数: 3299
27
确实,
最高级的 log server 就是可以方便检索的 NoSQL DB
其实我这个项目就是准备用 ElasticSearch cluster 把公司很多 service logs 和
measurements 数据都存进去,
我现在在琢磨 ElasticSearch cluster 自己的 log 怎么存,有点 egg and chicken
problem 的感觉.
ES 主页上是有把自己的 log 也存进去的, 不过 ES cluster 如果挂了的话... 我得有
个容易看的简单 log.
我把这个 Edit 到首页吧.

【在 z*******3 的大作中提到】
: 上cassandra和aop就好了
: 用java的应该都用spring吧?
: 用aop可以有效减少各种乱七八糟的log代码
: 结构也更合理,我针对每一个方法在调用前和后,各做一次拦截
: 获取相关数据,插入log,不过我不用log4j,找个nosql放
: nosql就用来做这个的,cassandra很好
: 然后查的时候就查cassandra
: 要不然动不动就要grep,我的天

d*******r
发帖数: 3299
28
看起来是实战经验, 我记下了

【在 z*******3 的大作中提到】
: java所有的项目
: 都经常依赖其他项目
: 比如a依赖b,c也依赖b,很正常
: 然后经常遇到的是比如,a依赖b的beta版
: c依赖b的2.1版,然后b的某一个方法在beta和2.1版里面不太一样
: 然后你同时用了a和c,这个时候你突然发现
: 他们都依赖的b项目开始冲突了,因为b项目的向后兼容做得很糟糕
: 虽然b的jars都在你的classpath里面
: 但是你要注意先后顺序
: 这个时候你就要问怎么办了?

d*******r
发帖数: 3299
29
我前台后台都是菜... :D
主要其实是从 C++ 转来做 Web 的,C++ --> Python --> Node.js --> ...

秀,

【在 r***y 的大作中提到】
: 晕, 俺咋没读出啥"冷嘲热讽"啊.
: goodbug 和 dumbCoder 这哥俩儿都是葵花版的活跃ID, 一个后台大牛, 一个前台新秀,
: 相互稔熟, 就是很随便的话赶话吧.

H****S
发帖数: 1359
30
大部分依赖冲突都是版本冲突,sbt都可以自动resolve成最新版本。log4j和logback属
于不同的library,但是都要access logging system,所以实际中有时让人很困惑。建
议用log4j over slf4,一劳永逸。用aop还要上java agent,感觉有点overkill。

【在 z*******3 的大作中提到】
: 项目变大了之后,不仅仅是log会有这个问题
: 其他依赖也都会开始打架,上gradle了

相关主题
wwzz家也转node了。怎样加jar文件到classpath (windows)
大家Java 还用ORM吗?java logger 用哪一个好?
有人用过slf4j simple logger么,太他妈的难用了其实微软是个做语言的公司
进入Programming版参与讨论
w**z
发帖数: 8232
31
看看splunk, 自己做太烦了。

【在 d*******r 的大作中提到】
: 确实,
: 最高级的 log server 就是可以方便检索的 NoSQL DB
: 其实我这个项目就是准备用 ElasticSearch cluster 把公司很多 service logs 和
: measurements 数据都存进去,
: 我现在在琢磨 ElasticSearch cluster 自己的 log 怎么存,有点 egg and chicken
: problem 的感觉.
: ES 主页上是有把自己的 log 也存进去的, 不过 ES cluster 如果挂了的话... 我得有
: 个容易看的简单 log.
: 我把这个 Edit 到首页吧.

m********t
发帖数: 13072
32
小声问一句,什么是轮子啊?
我一直以为是军版提法轮功用的那个指标
r***y
发帖数: 4379
33
朋友谦虚了. 你的帖子学了不少前台的东西, 而且看的出来大多是实战的一手经验.

【在 d*******r 的大作中提到】
: 我前台后台都是菜... :D
: 主要其实是从 C++ 转来做 Web 的,C++ --> Python --> Node.js --> ...
:
: 秀,

z*******3
发帖数: 13709
34
但是很多lib的新版本的api根本不兼容低版本的api
这种事情遇到过很多次,你更新到最新版本的话
有些依赖旧版的lib直接抛错,有些api被直接删掉了
当然拆开改掉,然后再打包也不是不可以,但是这就麻烦么
这个问题是大项目中不可回避的一个主要问题
aop的好处就在于,如果你用了spring,这个天然就在
而且代码就那么点,可以log一堆代码,何乐而不为?

【在 H****S 的大作中提到】
: 大部分依赖冲突都是版本冲突,sbt都可以自动resolve成最新版本。log4j和logback属
: 于不同的library,但是都要access logging system,所以实际中有时让人很困惑。建
: 议用log4j over slf4,一劳永逸。用aop还要上java agent,感觉有点overkill。

z*******3
发帖数: 13709
35
就是类库

【在 m********t 的大作中提到】
: 小声问一句,什么是轮子啊?
: 我一直以为是军版提法轮功用的那个指标

1 (共1页)
进入Programming版参与讨论
相关主题
Malab里调用第三方的java class,总是不成功。向班上达人请教一个win7下面java编程的问题
选择C#/.Net做Backend较之Linux有什么Advantage吗?其实吧,C#是最好的语言。。。
wwzz家也转node了。招人过程中关于语言一点小经验
大家Java 还用ORM吗?请分析一下java和.Net的前途
有人用过slf4j simple logger么,太他妈的难用了Java 和 .Net 到底哪个更有好一点的前景?
怎样加jar文件到classpath (windows)when I run junit test, how can I log the java log to a file?
java logger 用哪一个好?有没支持million concurrent queries per second的数据系统SQL/NoSQL
其实微软是个做语言的公司Scala会不会把Java搞成第二个C++
相关话题的讨论汇总
话题: java话题: log4j话题: log话题: classpath话题: slf4j