Make log method receive a copy of Entry structure to avoid race
conditions

Fixes #216

Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com>
diff --git a/entry.go b/entry.go
index 699ea03..8a522f0 100644
--- a/entry.go
+++ b/entry.go
@@ -70,12 +70,12 @@
 	return &Entry{Logger: entry.Logger, Data: data}
 }
 
-func (entry *Entry) log(level Level, msg string) {
+func (entry Entry) log(level Level, msg string) {
 	entry.Time = time.Now()
 	entry.Level = level
 	entry.Message = msg
 
-	if err := entry.Logger.Hooks.Fire(level, entry); err != nil {
+	if err := entry.Logger.Hooks.Fire(level, &entry); err != nil {
 		entry.Logger.mu.Lock()
 		fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", err)
 		entry.Logger.mu.Unlock()