Serilog: ๊ธฐ๋ณธ์ ์œผ๋กœ JSON.NET ๋™์  ๊ฐœ์ฒด(JObject) ์ง€์›

์— ๋งŒ๋“  2013๋…„ 05์›” 02์ผ  ยท  13์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: serilog/serilog

Twitter์—์„œ IDestructuringPolicy๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ƒ๋‹นํžˆ ๊ฐ„๋‹จํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
;)

enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ชจ๋“  13 ๋Œ“๊ธ€

IDestructuringPolicy ๋ฅผ ํ†ตํ•ด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ํ†ตํ•œ Cursory look์€ PropertyValueConverter ๋จผ์ €์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ์—์„œ๋Š” https://github.com/serilog/serilog/blob/master/src/Serilog/Parameters/PropertyValueConverter.cs?source=c#L112). ๊ฐ์ฒด๋ฅผ ์ปฌ๋ ‰์…˜์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋“  JToken ๋Š” IEnumerable ). ๋”ฐ๋ผ์„œ IDestructuringPolicy ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๊ท€์ฐฎ๊ฒŒ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•„๋งˆ๋„ IDestructuringPolicy ์— ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(๋จผ์ € ํ™•์ธํ•˜๊ณ  ๊ธฐ๋ณธ ๋™์ž‘์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ)๋Š” ํƒˆ์ถœ๊ตฌ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์™„์ „ํžˆ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธ.

์ง€๊ธˆ์€ ๊ฐ„์ ‘์ ์ธ ์ˆ˜์ค€์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋น ๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

IEnumerable ๊ฐ€ ์•„๋‹Œ JObjectWrapper ๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  JObject ๋ฅผ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด IDestructuringPolicy ๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ์„ธ์ƒ์€ ๋‹ค์‹œ ํ–‰๋ณตํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.

@kkozmic ์ด๊ฑฐ ์–ด๋•Œ์š” ? ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ œํ•œ์„ ์ œ๊ฑฐํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฑด๋ฐฐ :)

๊ธ€์Ž„, ๊ทธ๊ฒƒ์€ ๋ถˆ์พŒํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค :) ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ์žˆ์–ด์•ผ ํ•  ๊ณณ์œผ๋กœ ๋ฐ๋ ค๋‹ค ์ฃผ์ง€๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉด ๊ทธ๋ณด๋‹ค ๋” ์šฐ์•„ํ•œ ์†”๋ฃจ์…˜์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์ƒˆ๋กœ์šด ์ธํ„ฐํŽ˜์ด์Šค?

public interface ISequenceConversionPolicy
{
   bool TryConvertToSequence(object value, ILogEventPropertyValueFactory propertyValueFactory, out SequenceValue result);
}

๋˜ํ•œ, ์•„๋งˆ๋„:

public interface IDictionaryConversionPolicy

:)

์ง€๊ธˆ์€ ๋‹ซํ˜€ ์žˆ์ง€๋งŒ PR์„ ์‹œ๋„ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ์ด ์ž‘์—…์„ ํ†ตํ•ด ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž…๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! :)

@kkozmic ๋‹น์‹ ์˜ IDestructuringPolicy (๋ž˜ํผ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ)์„ ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ฝ”๋“œ๋Š” ๋” ์ด์ƒ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2015๋…„ 2์›” 3์ผ ํ™”์š”์ผ ์˜ค์ „ 4:38:45 Harry McIntyre [email protected]
์ผ๋‹ค:

@kkozmic https://github.com/kkozmic ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ
๊ท€ํ•˜์˜ IDestructuringPolicy(๋ž˜ํผ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ์ •์ฑ…)?

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/serilog/serilog/issues/30#issuecomment -72500600.

371์€ ์ด๊ฒƒ์„ ๋ฐ˜ํ–ฅํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ "2.0"์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ 1.4.168์€ ์ด๊ฒƒ์„ ์–ด์ƒ‰ํ•˜๊ฒŒ ๋งŒ๋“  ์ œํ•œ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ํ™œ์šฉํ•˜๋Š” _Serilog.Extras.JObject_ ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค :-)

@Jaben ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋ฉ‹์ง„!

@nblumhardt ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰