とってもいい技術です。
こういった手法が開発現場でも浸透して欲しいと思います。
しかし、今後の世の中は、「技術を使う技術」がより強く求められそうですね。
イノベーションよりもこちらのほうが大切なのではないかという気がしています。
技術に限らず全ての製品にいえますね。
今後、ちょっと時間をとってまとめてみようかと思います。
難易度★★★☆☆
出力する文字列の形式はLogのBest Practiceであるyyyy-MM-dd HH:mm:ss.usec zoneです。
# coding : utf-8
puts Time.now.instance_eval { 
'%s.%03d %s' % [strftime('%Y-%m-%d %H:%M:%S'),  (usec / 1000.0).round, zone] 
}
2013-01-06 12:55:09.197 JST
instance_evalメソッドとsprintfフォーマットを理解することが大切です。
参考サイト難易度★★☆☆☆
# coding : utf-8
require "json"
test = {
  :id => 1,
  :name => 'yamada',
  :timestamp => Time.now.instance_eval { 
    '%s.%03d %s' % 
    [strftime('%Y-%m-%d %H:%M:%S'),  
     (usec / 1000.0).round, 
     zone] 
  }
}
puts test.to_json
{"id":1,"name":"yamada","timestamp":"2013-01-06 12:55:09.197 JST"}
とても便利なメソッドです。是非使ってみてください
独り言今年はヘビ年だし、ビッグデータ関連の勉強始めたしで、pythonの勉強したいなあ....時間取れるかな。
そろそろ本格的にビックデータ時代がきそうなので、今年から学習を開始します。
まずはfluentdというログ収集ツールをMac上で試してみたのでメモ
かなりグダグダだったので、あんま参考にならないかもw
ログ収集基盤です
fluentdの機能はほとんどinput, Buffer, output,の三つのプラグインで実現されている。
gemを使ってinstallします。
$ rvm gemset create fluentd $ rvm gemset use fluentd $ gem install fluentd $ fluentd --setup ./fluent Installed ./fluent/fluent.conf. $ fluentd -c ./fluent/fluent.conf -vv & $ 2013-01-02 06:50:02 +0900: fluent/supervisor.rb:153:supervise: starting fluentd-0.10.30 2013-01-02 06:50:02 +0900: fluent/supervisor.rb:235:read_config: reading config file path="./fluent/fluent.conf"
起動確認。すんごいシンプル。
ジョブを停止します
jobs jobs [1]+ Running fluentd -c ./fluent/fluent.conf -vv & kill %1
fluentd -hでHELPが確認できます。
$ fluentd -h
Usage: fluentd [options]
    -s, --setup [DIR=/etc/fluent]    install sample configuration file to the directory
    -c, --config PATH                config file path (default: /etc/fluent/fluent.conf)
    -p, --plugin DIR                 add plugin directory
    -I PATH                          add library path
    -r NAME                          load library
    -d, --daemon PIDFILE             daemonize fluent process
        --user USER                  change user
        --group GROUP                change group
    -o, --log PATH                   log file path
    -i CONFIG_STRING,                inline config which is appended to the config file on-fly
        --inline-config
    -v, --verbose                    increase verbose level (-v: debug, -vv: trace)
    -q, --quiet                      decrease verbose level (-q: warn, -qq: error)
起動と停止の仕方がわかったのでとりあえず終了。
ビッグデータの本を読んだけど、以下の本が面白かったです。エンジニアはなるべく読んでおいたほうがいいでしょう。
kindleだと30%引きぐらいで買えました。紙の本は死んでしまうんかな・・・
以上です。