But I would expect getContentType to return a mime type, not a charset.

Ralph

> On Mar 6, 2018, at 9:17 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> 
>> On Tue, Mar 6, 2018 at 6:01 PM, Remko Popma <remko.po...@gmail.com> wrote:
>> 
>> Sorry, I don’t follow.
>> Why not get the appender’s layout and get the charset by calling
>> getCharset()?
>> 
> 
> Right now, I have this ugly non-OO code:
> 
>                final Layout<? extends Serializable> layout =
> appender.getLayout();
>                final Charset charset;
>                if (layout instanceof StringLayout) {
>                    charset = ((StringLayout) layout).getCharset();
>                } else {
>                    charset =
> ContentType.parse(layout.getContentType()).getCharset();
>                }
> 
> If getContentType() always returned the right thing, I would not need a
> conditional.
> 
> Gary
> 
> 
>> 
>> 
>> 
>>> On Mar 7, 2018, at 7:21, Gary Gregory <garydgreg...@gmail.com> wrote:
>>> 
>>> Here is my current use case: I'd like to be able to query
>> getContentType()
>>> on an FILE appender (File, RollingFile, RAF, ...) and get the proper
>>> charset if the layout for that appender defines it.
>>> 
>>> Gary
>>> 
>>>> On Tue, Mar 6, 2018 at 3:16 PM, Matt Sicker <boa...@gmail.com> wrote:
>>>> 
>>>> Not all MIME types actually use the encoding parameter. For example,
>>>> "application/json;charset=UTF-8" is technically an invalid MIME type
>> (it's
>>>> supposed to be "application/json", and it's assumed to be UTF-8 because
>>>> that's the only official charset for JSON). Providing the charset
>>>> separately makes semantic sense to me.
>>>> 
>>>>> On 6 March 2018 at 16:04, Gary Gregory <garydgreg...@gmail.com> wrote:
>>>>> 
>>>>> Right. AbstractStringLayout says:
>>>>> 
>>>>>   @Override
>>>>>   public Charset getCharset() {
>>>>>       return charset;
>>>>>   }
>>>>> 
>>>>>   /**
>>>>>    * @return The default content type for Strings.
>>>>>    */
>>>>>   @Override
>>>>>   public String getContentType() {
>>>>>       return "text/plain";
>>>>>   }
>>>>> 
>>>>> Gary
>>>>> 
>>>>> 
>>>>> 
>>>>> On Tue, Mar 6, 2018 at 2:52 PM, Remko Popma <remko.po...@gmail.com>
>>>> wrote:
>>>>> 
>>>>>> (Away from pc) by “use”, do you mean that the string returned by
>>>>>> getContentType() doesn’t include a charset?
>>>>>> 
>>>>>> From memory, I remember the only place this method is used is in the
>>>>>> HtmlAppender. Are there other places?
>>>>>> 
>>>>>> (Shameless plug) Every java main() method deserves
>> http://picocli.info
>>>>>> 
>>>>>>> On Mar 7, 2018, at 1:37, Gary Gregory <garydgreg...@gmail.com>
>>>> wrote:
>>>>>>> 
>>>>>>> Hi All,
>>>>>>> 
>>>>>>> It looks
>>>>>>> like org.apache.logging.log4j.core.layout.AbstractStringLayout.
>>>>>> getContentType()
>>>>>>> does NOT use its charset.
>>>>>>> 
>>>>>>> Can anyone foresee a problem with fixing this?
>>>>>>> 
>>>>>>> Gary
>>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Matt Sicker <boa...@gmail.com>
>>>> 
>> 


Reply via email to