diff --git a/event/common.go b/event/common.go
index 68c0008..e98d20b 100644
--- a/event/common.go
+++ b/event/common.go
@@ -49,6 +49,15 @@
 	}
 }
 
+func Error(ctx context.Context, msg string, err error, labels ...Label) {
+	ev := New(ctx, LogKind)
+	if ev != nil {
+		ev.Labels = append(ev.Labels, labels...)
+		ev.Labels = append(ev.Labels, String("msg", msg), Value("error", err))
+		ev.Deliver()
+	}
+}
+
 func Annotate(ctx context.Context, labels ...Label) {
 	ev := New(ctx, 0)
 	if ev != nil {
diff --git a/event/event.go b/event/event.go
index bfba077..beff412 100644
--- a/event/event.go
+++ b/event/event.go
@@ -118,3 +118,12 @@
 	eventPool.Put(ev)
 	return ctx
 }
+
+func (ev *Event) Find(name string) Label {
+	for _, l := range ev.Labels {
+		if l.Name == name {
+			return l
+		}
+	}
+	return Label{}
+}
diff --git a/event/keys/keys.go b/event/keys/keys.go
index a4463fb..b9b7a44 100644
--- a/event/keys/keys.go
+++ b/event/keys/keys.go
@@ -185,3 +185,14 @@
 
 // From can be used to get a value from a Label.
 func (k Bool) From(l event.Label) bool { return l.Bool() }
+
+// Error represents a key
+type Error string
+
+// Of creates a new Label with this key and the supplied value.
+func (k Error) Of(v error) event.Label {
+	return event.Value(string(k), v)
+}
+
+// From can be used to get a value from a Label.
+func (k Error) From(l event.Label) error { return l.Interface().(error) }
diff --git a/jsonrpc2/conn.go b/jsonrpc2/conn.go
index f7ddaa1..b4befbf 100644
--- a/jsonrpc2/conn.go
+++ b/jsonrpc2/conn.go
@@ -414,7 +414,7 @@
 	if err := c.respond(entry, result, rerr); err != nil {
 		// no way to propagate this error
 		//TODO: should we do more than just log it?
-		event.Log(entry.baseCtx, "jsonrpc2 message delivery failed", event.Value("error", err))
+		event.Error(entry.baseCtx, "jsonrpc2 message delivery failed", err)
 	}
 }
 
