## Where communities thrive

• Join over 1.5M+ people
• Join over 100K+ communities
• Free without limits
##### Activity
• Jan 30 09:25
haf commented #351
• Jan 30 09:24
haf edited #351
• Jan 30 09:24
haf edited #351
• Jan 29 23:09
rtkelly13 starred logary/logary
• Jan 29 08:14

haf on master

• Jan 29 02:25
jburman starred logary/logary
• Jan 28 11:01

haf on master

Correcting copy target in Docke… (compare)

• Jan 28 11:00

haf on master

Remove stray extra find stanza … (compare)

• Jan 28 10:58

haf on master

Let Dockerfile copy the artifac… (compare)

• Jan 28 10:50

haf on master

Quicker builds with pre-downloa… Dockerfile with Rutta publish s… (compare)

• Jan 27 13:01
haf edited #385
• Jan 27 12:52

haf on master

Test with better .dockerignore … (compare)

• Jan 27 00:02

haf on master

Makefile targets (compare)

• Jan 26 22:56

haf on master

Remove legacy/ folder; noone ha… Remove stray duplicate Version … Remove extra print of locales and 5 more (compare)

• Jan 26 20:56

haf on master

Fix LC_ALL warning from perl (compare)

• Jan 26 20:35

haf on master

Working Dockerfile build and ma… (compare)

• Jan 26 19:13
tallpeak starred logary/logary
• Jan 26 19:02
haf opened #385
• Jan 26 18:59

haf on master

Add RELEASE_NOTES note and Dock… (compare)

• Jan 26 18:20
haf closed #383
Jimmy Byrd
@TheAngryByrd
@btrepp do you have Message.eventInfo and friends? Should be similar to what you want. I've also just been using logSimple as it uses the Messages LogLevel
Jimmy Byrd
@TheAngryByrd
if I want to create a rule for a specifichiera like Npgsqland set it to Info and leave the rest as Debug how would I go about that? This doesn't seem to work for some reason.
                Rule.createForTarget ("console")
|> Rule.setHieraString "Npgsql"
|> Rule.setLevel LogLevel.Info
Rule.createForTarget ("console")
|> Rule.setLevel LogLevel.Debug
btrepp
@btrepp

@TheAngryByrd I've seen them, but they seem to curry it even more
Eg the log factory would want to ignore the first argument of log level.

Atm I've been creating point free like functions as needed, but I'm still trying to figure out what would be 'idiomatic' logary

Tbh it seems like most people would use logSimple, but I'm actually inside a Hopac Job, and waiting for it to at least be buffered or committed is the behaviour I am chasing
btrepp
@btrepp
Ahh it seems to be called Message.eventX
Henrik Feldt
@haf
@btrepp logger.info (eventX "Thing {happened}" >> setField "happened" 42)
That buffers in the job scheduler.
logger.infoWithBP buffers in RingBuffer ahead of each target (and you can continue/job is done) after ALL targets have this message in their ring buffers (but not taken it yet)
logger.logWithAck gives an Alt which gets committed when the RingBuffer of all targets has accepted the message and its inner value is a promise that gets committed/a value when all targets have flushed the log message.
You need to open the Message module in Logary to get the 'nice idiomatic usage.
btrepp
@btrepp
Thanks @haf.
btrepp
@btrepp
Really digging those Ack/Hopac based methods, most of where I want logging is in the IO realm, which I'm using hopac jobs as a surrogate for
btrepp
@btrepp
Is it possible to use the shipper to ship logs to a process that stores them all in an SQL database? It seems this might be possible with the Rutta process?, is there a binary available or do I need to compile it?
btrepp
@btrepp
ah looks like the SQL target doesn't support serviceNames, so I might have to add that first
btrepp
@btrepp

Does current master build?. I'm getting errors when running the bundle exec rake

:\msys64\home\beau.trepp\net\logary\examples\Libryy\Libryy.fsproj: error : C:\msys64\home\beau.trepp\net\logary\examples\Libryy\Libryy.fsproj: C:\msys64\home\beau.trepp\net\logary\examples\Libryy\Libryy.fsproj could not import "\$(FSharpTargetsPath)"
Configuration: Release Platform: AnyCPU
BinaryAnnotation.cs(15,55): warning CS1570: XML comment has badly formed XML -- 'Reference to undefined entity 'rArr'.'

Granted i'm using msys2 on windows, so theres probably a whole bunch of hell with ruby interacting with it

Henrik Feldt
@haf
Albeit not on Windows for Logary, because contributors haven't popped up on Windows.
Although you probably don't need to build the examples
btrepp
@btrepp
Ah I was going to try and get a dev environment up to try and do a PR for the migrations
You have a good point, I was just following the README and trying to initialize an environment to hack on :)
btrepp
@btrepp
Managed to get bits to compile, core tests run fine, DB tests throw {"Attempted to read or write protected memory. This is often an indication that other memory is corrupt."} on the smoke test for what looks like an Sqlite in memory db on windows.
Henrik Feldt
@haf
@btrepp If I remember correctly those also get thrown from p/invoke on Win when you're running 32 bit code in 64 bit proc or vice versa.
btrepp
@btrepp
Mhmm I will have to play with that when I'm back at work and see what's going on
Is there any elegant way to wait for all the loggers to flush when I'm shutting down my application?
Henrik Feldt
@haf
Yes, there's a call called flush on the registry, but if you use the interface LogManager, Dispose() will wait for them all.
Ákos Lukács
@AkosLukacs
Hi !
Ákos Lukács
@AkosLukacs
Ah, so not compatible with NodaTime 2
Henrik Feldt
@haf
Hi there
Not yet, but soon
Tuomas Hietanen
@Thorium
what is the preferred workaround if I want to compile same web-server logic with .Net Framework and .Net Core, if I'm using Logary quite heavily? Should I just mock Logary calls with conditional compilation to aspnet-core-logging-dependency-injection-mess ?
Grégoire Lejay
@Antobiotics
Hi! Im quite new to f# but i'm encountering issues using logary im trying: 
let logger = Logging.getCurrentLogger ()
Message.event Info "Something here" |> Logger.logSimple logger
and getting :
 threw an exception. ---> System.MissingMethodException: Method not found: 'NodaTime.Instant NodaTime.SystemClock.get_Now()'.
at Logary.MessageModule.Event(LogLevel level, String template)
(i apologize in advance if it's not the right place to ask)
i tried to add NodaTime to my paket dependencies but that didn't work. Is there something obvious that i am missing?
btrepp
@btrepp
Anyone have any experience with the WinPerfCounters metrics? I've managed to get App metrics working (awesome), but half of the system metrics return 0
Tried on server 2016 running as a service under nssm, and admin(UAC) on windows 10
Proccessor stats are all zero, along with memory
a few other system counters work, but mainly I was chasing the CPU and memory :D
Ákos Lukács
@AkosLukacs
@Antobiotics Use NodaTime less than v.2.0
@btrepp share with us if you can get it working, thanks :)
Grégoire Lejay
@Antobiotics
@AkosLukacs thanks for the tip, I will try this out
Davydov Denis
@Inkp
Hello, would Logary support netcore anytime soon? I am on the crossroad between logary and serilog. Tried using net461 version on netcoreapp2.0 but it behaves oddly.
Ghost
@ghost~57bd5b1440f3a6eec0610e8d
Hi All, I would like to volunteer improving the build process. Requiring the Ruby environment on windows is a bit of a pain. I'd like to propose the use of FAKE and PAKET
Quintus Marais
@quintusm
It seems like a good idea to try and get rid of the Ruby requirement. I have run into a versioning issue myself trying to do a build with the newest version of Ruby...
btrepp
@btrepp
I might be lost here, but it looks like logary looks for a ToValue on unknown types, like Chiron with ToJson. Does anyone know how this works?. I suspected it might've been ToValue : 'a -> Value or ToValue: 'a -> Value<string> etc but I can't seem to get it compile
btrepp
@btrepp
Ah it seems that the static inference in F# is pickier than I would imagine. Method needs to be defined a ToValue (x:_) : Value<unit>. Returning a function is not enough for the F# compiler
btrepp
@btrepp
What's the best way of timing an Alt<_>? It strikes me as maybe a Message.timeAlt is the case, but the Logger.log function doesn't really gel with the types (unless I create factory functions to ignore or set the messages)
I'm sure theres some nice functions and I'm just not finding them
Jun
@lust4life
@btrepp the previous version of WinPerfCounter has some bug when use with more than one instance. the new version has solved this. you can see the detail in logary/logary@9bcfacd , the old version use x.counter.InstanceName <- instance to change instance, this will initial the instance and the first NextValue is always zero.