Не попробованный это, но logstash кажется, что сделает то, что Вы хотите:
http://code.google.com/p/logstash/
Лицензия является Новым BSD.
Есть два шага к этому, чтобы разрешить передачу как массивов, так и строк. Мы использовали это в нескольких шаблонах в марионетке.
+ : root : ALL
# Next lines should be generated dynamically based on a variable
<%
if @users.class == String then
real_users = [@users]
else
real_users = @users
end
# flatten ensures that any inline arrays are also processed by element
real_users.flatten.each { |cur_user|
-%>
+ : <%= @cur_user -%> : ALL
<%
}
-%>
# Until this line
- : ALL : ALL